我可以获得这方面的帮助:
我在谷歌网站管理员工具上看到这样的断开链接: test.php的ΔT=测试%20title
test.php页面已删除,现在我使用的是index.php而不是test.php
所以我需要用htaccess再次重写url。我怎么能这样做?
http://www.domain.com/test.php?t=test%20title 链接更改为 http://www.domain.com/t/test-title/ 要么 http://www.domain.com/index.php?t=test%20title
我确实尝试过这些选项但没有奏效:
ReWriteRule ^test.php?t=(.*)$ index.php?t=$1
ReWriteRule ^test.php?t=([0-9a-z]+)$ index.php?t=$1
ReWriteRule ^test\.php\?t=(.*)$ index.php?t=$1
ReWriteRule ^test\.php\?t=([0-9a-z]+)$ index.php?t=$1
有可能为htaccess创建固定链接吗? http://www.domain.com/t/test-title/
答案 0 :(得分:0)
查询字符串不是RewriteRule指令中匹配的一部分,使用%{THE_REQUEST}变量来匹配查询字符串。
在你的htaccess中试试这个:
RewriteEngine on
RewriteCond %{THE_REQUEST} /index\.php\?t=([^\s]+)\s*([^\s&]+)\sHTTP/1.1 [NC]
RewriteRule ^ /t/%1-%2? [NC,L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^t/([^-]+)-([^/]+)/?$ /index.php?t=$1%20$2 [NC,L]