我有吉他和弦的子域名。 http://tabs.sitename.com/?song=song_name 我想重写这个网址, http://tabs.sitename.com/song/song_name 我尝试使用以下代码,但我的网址没有重写。
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^song/([^/]*)/$ /?song=$1 [L]
网址未重写。我错过了什么吗?请帮忙
答案 0 :(得分:0)
请尝试以下规则:
Options +FollowSymLinks
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/\?(song)=([^\s&]+) [NC]
RewriteRule ^ /$1/$2? [R=301,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^song/([^/]+)/$ /?song=$1 [L,QSA,NE]
答案 1 :(得分:0)
首先,您提供的模式:
^song/([^/]*)/$
与您要匹配的字符串不匹配:
song/Bistarai+Bistarai
所以,下次有助于确保你的模式在继续之前有效。
假设我完全理解你想要做什么,这应该工作(重定向目标文件上的php扩展只是一个例子,使用你的真实目标文件):
RewriteRule ^song\/([A-Za-z0-9\+]+) file_you_want_to_redirect_to.php?song=$1
正如我所提到的,我在上面的例子中使用了一个php脚本;如果我要了解你正试图重定向到http://tabs.musiccafenepal.com/的索引页面,你应该知道你应该放
index.php?song=$1
而不是
/?song=$1
作为重定向目标表达式。