.htaccess, use mod_rewrite to rewrite to a file OUTSIDE the web root
Short answer: no. The webserver can't directly access files outside of the document root. If you think about it, there would be quite a security problem if it could. What you can do is rewrite to a file within the document root that includes or reads from the file that is located outside of the root. (Moved from comments...)
.htaccess mod_rewrite with 3 directories levels
You are fairly close. Just note that RewriteCond
is applicable to next immediate RewriteRule
only so you check of !-f
will only be used for first rule. You can have a separate rule to discard all requests that are for existing files and directories.
RewriteEngine On
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([\w-]+)/?$ category.php?category=$1 [L,QSA]
RewriteRule ^([\w-]+)/([\w-]+)/?$ type.php?category=$1&type=$2 [L,QSA]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ company.php?category=$1&type=$2&company=$3 [L,QSA]
htaccess mod_rewrite - rewrite folder and file to parameters
Could you please try following, written and tested with your shown samples. Please make sure you clear your browser cache before testing your URLs.
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^memes/([^/]*)/(.*jpg)$ memes/?folder=$1&pic=$2 [NC,L]
additional .htaccess in subfolder | mod_rewrite for query parameter
You can use this rule in /project-name/.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?preset=$1 [L,QSA]
rewrite problems (htaccess)
I am on mobile I haven't tested it but looks like you could be reaching out to maximum redirect limits here why because your condition in your root htaccess isn't looking good to me, try this once.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteCond %{REQUEST_URI} !^/public/? [NC]
RewriteRule (.*) public/$1 [L]
</IfModule>
Issues in OP's approach: You haven't mentioned any condition to when it should redirect so it doesn't know when to stop hence it's creating a loop here IMHO.
Related Topics
Setlocale(Lc_All, 'En_Gb.Utf8') Not Working on Windows
How to Get the First Day of the Week for the Current Locale? (Php/L8N)
Converting a Carbon Date to MySQL Timestamp
How to Store Variable Values Over Multiple Page Loads
Problems with Secure Bind to Active Directory Using PHP
Laravel Session Expire Time for Each Session
Get Last Word from Url After a Slash in PHP
How to Inject a Service in Another Service in Symfony
Regular Expression to Remove CSS Comments
Php's Simplexml: How to Use Colons in Names
Pcntl Runs the Same Code Several Times, Assistance Required
Apostrophes Are Breaking My MySQL Query in PHP