用htaccess创建一个永久链接

时间:2015-11-18 19:54:16

标签: .htaccess

我可以获得这方面的帮助:

我在谷歌网站管理员工具上看到这样的断开链接: 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/

1 个答案:

答案 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]