我在.htaccess中重定向网址有问题.我想删除.PHP&来自URL的问号.
例如:www.example.com/test.PHP?id = 12到www.example.com/test/12需要这样的格式.
我尝试在.htaccess中使用此代码
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]
## hide .PHP extension snippet
# To externally redirect /dir/foo.PHP to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.PHP [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.PHP
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteRule ^(.*?)/?$$1.PHP [L]
解决方法:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]
## hide .PHP extension snippet
# To externally redirect /dir/foo.PHP?id=123 to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.PHP\?id=([^&\s]+) [NC]
RewriteRule ^ %1/%2? [R,L]
# To internally forward /dir/foo/12 to /dir/foo.PHP?id=12
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteRule ^(.+?)/([^/]+)/?$$1.PHP?id=$2 [L,QSA]
# To externally redirect /dir/foo.PHP to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.PHP\s [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.PHP
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*?)/?$$1.PHP [L]