干净的URL - .htaccess

时间:2016-09-28 12:19:24

标签: php .htaccess url mod-rewrite parameters

Clean URL仅适用于index.php,但不适用于其他页面(explore和top)。 我想要的参数"清洁"是'流派' (例如:genre = pop)。这是一个网站:swiftlymusic.com并托管在" 1& 1(1and1 oneandone)"服务器。
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

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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]