重写规则启用训练斜杠和无斜杠



这个问题可能是重复的,但我搜索了很多,找不到答案。所以我使用htaccess文件来重写,我想用url显示相同的页面:http://localhost/assoc/about和http://localhost/assoc/about/。

我通过"include_once"调用页面内容,页面位于目录/www/assoc/astc/中。例如,当我磁带http://localhost/assoc/about,它的工作,但与训练斜杠,它重定向到404页。

这是我的htaccess。谢谢。
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ([a-z]+)$ astc/accueil.php?page=$1 [L]
RewriteRule ^/(.*)$ astc/accueil.php?page=$1 [R=301,L]
RewriteRule ([a-z]+)/([A-Za-z0-9_]+)$ astc/accueil.php?page=$1&id=$2 [L]
RewriteRule ^/(.*)$ astc/accueil.php?page=$1&id=$2 [R=301,L]
ErrorDocument 404 http://localhost/assoc/page-non-trouvee

问题很少。这条线

RewriteRule ^/(.*)$ astc/accueil.php?page=$1 [R=301,L]

将所有请求重定向到astc/accueil.php?page=

我还建议重新映射而不是重定向您的请求

^/(.*)$正则表达式捕获所有请求,因此不可能评估剩余的重写规则。

尝试添加重写日志来调试您的正则表达式

除非您已经有了,否则请尝试将以下行添加到您的htaccess

DirectorySlash On

最后它会处理这个内容:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ([a-z]+)(/?)$ astc/accueil.php?page=$1 [L]
RewriteRule ([a-z]+)/([A-Za-z0-9_]+)(/?)$ astc/accueil.php?page=$1&id=$2 [L]
ErrorDocument 404 http://localhost/assoc/page-non-trouvee

感谢大家。

最新更新