我有一个索引页面放在/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
。我知道改变绝对路径的相对路径可以解决问题,但有没有办法用重写规则解决这个问题?