在添加用于附加尾部斜杠的重写规则

时间:2015-06-02 03:31:51

标签: php apache .htaccess mod-rewrite url-rewriting

我有一个索引页面放在/forum/section1/.我有一个规则,当我浏览exampledomain.com/forum/section1/时自动重定向到索引页面。有时当我忘记了尾部斜杠时,它会继续加载并且永远不会进入索引页面。我添加了一条规则,为每个请求添加一个尾部斜杠:

RewriteEngine on
#From http://enarion.net/web/htaccess/trailing-slash/ 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
# Don't apply to images/css/js/ajax files
RewriteCond %{REQUEST_URI} !^.*\.(jpg|jpe?g|ico|css|js|gif|png|php)$ [NC]
RewriteRule ^(.*)$ http://exampledomain.com/$1/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteCond %{REQUEST_URI} !^.*\.(jpg|jpe?g|ico|css|js|gif|png)$ [NC]

#Remove php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^([^\.]+)$ $1.php [NC,L]

规则正在运行,但所有相对路径都无效。例如,我在索引页面上有一个表单:

       `<form action='index' method='POST'></form>`

而不是访问exampledomain/forum/section1/index/,它会重定向到exampledomain/forum/section1/index/index。我知道改变绝对路径的相对路径可以解决问题,但有没有办法用重写规则解决这个问题?

0 个答案:

没有答案