我在PHP编码,并实现了一个删除文件扩展名的htaccess代码(在这种情况下' .php')。
问题是,这并不允许目录删除末尾的index.php。
即。 http://www.domain.com/about/ - 在此服务器上找不到请求的URL /about/.php。
这是我目前的代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php http://www.domain.com/$1 [R=301,L]
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php/?$ / [L,R=301,NC]
我希望/ about /重定向到/about/index.php,而只是显示/ about /
先谢谢你们!
答案 0 :(得分:1)
只需在htaccess文件中使用DirectorySlash apatche会自动在目录名后添加尾部斜杠
DirectorySlash On
如果你想调用没有尾部斜杠的目录,请尝试:
DirectorySlash Off
答案 1 :(得分:0)
你可以试试这个:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ([^/]+)/? [NC]
RewriteRule .* %1/index.php [L,QSA]
它将静默地映射
http://www.domain.com/anything/
到
http://www.domain.com/anything/index.php