2016-09-28 114 views
0

清洁URL仅适用于index.php,但不适用于其他页面(探索和顶部)。 我想要“干净”的参数是'genre'(例如:genre = pop)。这是网站:swiftlymusic.com,并托管在“1(1and1 oneandone)”服务器上。
的.htaccess:清理URL - .htaccess

ErrorDocument 404 /04.html 

RewriteBase/


RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^log$ logs [L] 
RewriteRule ^([a-zA-Z0-9]+)$ ?genre=$1 [L] 
RewriteRule ^([a-zA-Z0-9]+)/$ ?genre=$1 [L] 
RewriteRule ^explore/([a-zA-Z0-9_-]+)$ explore.php?genre=$1 [L] 
RewriteRule ^top/([a-zA-Z0-9_-]+)$ top.php?genre=$1 [L] 

AddDefaultCharset UTF-8 

回答

0

您是否尝试过重新排序,使“explore.php”和“top.php”线是普通线之上?另外,你可以使用'?'而不是重复该行两次:一次,一次没有正斜杠。

RewriteRule ^explore/([a-zA-Z0-9_\-]+)/?$ explore\.php?genre=$1 [L] 
RewriteRule ^top/([a-zA-Z0-9_\-]+)/?$ top\.php?genre=$1 [L] 
RewriteRule ^([a-zA-Z0-9]+)/?$ ?genre=$1 [L] 
+0

我尝试过,但没有改变... –

+0

我能看到的唯一的另一件事是逃离。用'\ .',看我编辑的答案。 – sdexp

+0

仍然没有变化,我添加了附近的流派导航栏为您查看完整的网址的结果。 –

0

尝试像这样,

Options -Multiviews 
ErrorDocument 404 /04.html 

RewriteBase/

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^log$ logs [L] 
RewriteRule ^([\w-]+)$ ?genre=$1 [L] 
RewriteRule ^([\w-]+)/$ ?genre=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#explore & top and any other can be use by this 1 rule 
RewriteRule ^([\w]+)/([\w-]+)$ $1.php?genre=$2 [QSA,L] 
+0

也没有工作.. –

+0

哪个规则不起作用! –

+0

正如你可以看到swiftlymusic.com/pop作品和流派导航栏显示流行,但swiftlymusic.com/explore/pop不起作用 - 流派导航显示“全部”。 –