我的网址是
http://localhost/site.in/names-in.php?loc=kochi
我所需的网址是
http://localhost/site.in/names-in/kochi
我在.htaccess
中有此功能,很遗憾,该功能无法正常工作。
Options +FollowSymLinks
RewriteEngine on
RewriteRule names-in/(.*)/ names-in.php?loc=$1
我在页面print_r($_GET);
中有此标签,其中显示了空数组。为什么没有任何输入?
答案 0 :(得分:2)
您的原始RewriteRule未得到满足。您可以使用{QUERY_STRING}
代替:
RewirteEngine On
RewriteCond %{QUERY_STRING} loc=(.+)$ [NC]
RewriteRule ^(.*)$ /names-in/%1 [R=301,L,QSD]
然后内部重写URL:
RewriteRule ^/names-in/([^/]*) /names-in.php?loc=$1 [L]
确保在测试之前 清除缓存。这是使用R=301
(这是永久重定向),建议您在测试时将其更改为R=302
,因为这是临时的。
我还将?
添加到了重写的URL的末尾。这是为了阻止原始查询出现在URL的末尾。
答案 1 :(得分:0)
尝试一下
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^names-in/(\d+)*$ ./names-in.php?loc=$1
#RewriteRule ^names-in/(.*)$ ./names.php.php?loc=$1
访问