Clean URLs - .htaccess


Clean URLs - .htaccess

Clean URLs只适用于index.php,而不适用于其他页面(explore和top)。我想要"清理"的参数是"genre"(例如:genre=pop)。这是一个网站:swiftlymusic.com,托管在"1&1(1and1oneandone)"服务器上。
. 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

试一下,

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]

您是否尝试过重新排序,以便"explore.php"answers"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]