DirectorySlash设置不使用url而不使用斜杠

时间:2015-06-29 07:26:58

标签: apache .htaccess mod-rewrite

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/已无法访问。有人能指出我的规则有什么问题吗?

0 个答案:

没有答案