这里有两个与.htaccess
和PHP GET变量有关的问题。
基本上,我正在动漫网站上工作,我希望能够加载site.com/anime/AnimeName
现在,我将其作为site.com/anime/index.php?watch=AnimeName
我能够为我的用户个人资料执行此操作:
RewriteEngine On
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ /profile.php?username=$1
我尝试使用.htaccess
子目录中/anime/
的类似方法,但我似乎无法让它发挥作用。
我的第二个问题(并非与主要问题一样重要),我想知道如何为.htaccess文件设置两个变量。
例如:我有site.com/anime/?watch=AnimeName&ep=Ep#
基本上,我想知道如何让它像这样:
第一集site.com/anime/AnimeName/1
,第二集site.com/anime/AnimeName/2
,依此类推。
<小时/> 更新:我在我的主
.htaccess
文件中执行了此操作,它适用于用户名和动漫。
RewriteEngine On
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^u/(.*)$ /profile.php?username=$1
RewriteRule ^a/(.*)$ /anime.php?watch=$1
现在,我怎样才能做到这一点:
第1集site.com/a/AnimeName/1
?
我试过这个但是它没有工作: RewriteRule ^(。*)$ / a /&amp; ep = $ 1 无论哪种方式, 谢谢高级。
答案 0 :(得分:1)
重写条件仅会立即应用于遵循规则。所以你需要复制条件。
RewriteEngine On
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^u/(.*)$ /profile.php?username=$1 [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^a/(.*)$ /anime.php?watch=$1 [L]
但是,如果/a/
和/u/
不是真正的子目录,那么您就不需要这些条件。对于附加参数,您需要第3条规则:
RewriteEngine On
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^u/(.*)$ /profile.php?username=$1 [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^a/([^/]+)$ /anime.php?watch=$1 [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^a/([^/]+)/([0-9]+)$ /anime.php?watch=$1&ep=$2 [L]