I have this .htaccess file:
Options +FollowSymLinks
DirectorySlash On
RewriteEngine On
# Remove trailing slash for non directories
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /mydir%1/$1 [R,L=303]
# Make direct files accessible
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^base.php.*$
RewriteRule ^([^
]+)|(.*)$ base.php?___ROUTE=$1 [QSA,END]
Which having following redirection behaviors:
- ✔️
d.com/mydir
→d.com/mydir/
- ✔️
d.com/mydir/nothing
→ run - ✔️
d.com/mydir/nothing/
→d.com/mydir/nothing
- ❌
d.com/mydir/exist_dir
→d.com/mydir/exist_dir/?___ROUTE=exist_dir
- ❌
d.com/mydir/exist_dir/
→ run - ✔️
d.com/mydir/exist_file.css
→ run - ✔️
d.com/mydir/exist_file.css/
→d.com/mydir/exist_file.css
By run I mean It respond file contents or execute
base.php?___ROUTE=$1
Now I have a problem and a question
Problem:
I don't know how to fix redirection number 4.
Number 5 should redirect to d.com/mydir/exist_dir
.
And number 4 should execute base.php?___ROUTE=$1
instead of redirection
Question:
How can I use current directory name in .htaccess
instead of writing it's name in each project?
I mean /mydir
in RewriteRule ^(.*)/$ /mydir%1/$1 [R,L=303]