existingfolder
是一个包含index.php
文件的文件夹。我有一些重写规则使http://url.com/existingfolder/
重定向到index.php。但是,如果没有尾随斜杠http://url.com/existingfolder
,则Chrome会加载并最终导致错误页面。
我已经尝试了许多规则来使http://url.com/existingfolder
(没有尾随)工作与http://url.com/existingfolder/
(带尾随)相同但没有成功。我的Apache版本是2.29,因此我无法使用RewriteOptions AllowNoSlash
。我没有使用.htaccess
而是将所有规则放在配置文件中。
RewriteEngine on
###I have tried:
DirectorySlash off
### I have also tried DirectorySlash on
RewriteEngine On
RewriteRule ^$ - [L,R=404]
###
#The rest of my rules
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
#redirect to index page inside the folder
RewriteCond %{THE_REQUEST} /index\.php [NC]
#remove php extension
RewriteRule ^([^\.]+)$ $1.php [NC,L]
这个解决方案根本不起作用。它会使事情变得更糟,因为http://url.com/existingfolder/
已无法访问。有人能指出我的规则有什么问题吗?