繁体   English   中英

.htaccess带有PHP GET变量的子目录中的RewriteRule

[英].htaccess RewriteRule in subdirectory with PHP GET variables

我在这里有两个有关.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 

我在/anime/子目录中使用.htaccess尝试了类似的方法,但似乎无法正常工作。

我的第二个问题(不是主要问题),我想知道如何为.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 /&ep = $ 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/不是真正的子目录,则不需要这些条件。 对于附加参数,您需要第三个规则:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM