简体   繁体   English

多个rewrite_rules

[英]Multiple rewrite_rules

I am having a hard time getting two rewrite rules to work. 我很难让两个重写规则起作用。 Right now these links do work: 现在,这些链接可以正常工作:

http://domainname.com/blog/something/something/andsomethingelse/
http://domainname.com/blog/
http://domainname.com/leaderboard/

If I access, /leaderboard/something, it shows Not Found error page from WordPress blog, ignoring the leaderboard rewrite rule. 如果我访问/ leaderboard / something,它将显示WordPress博客中的Not Found错误页面,而忽略了排行榜重写规则。

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /leaderboard/index.php [L]
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Ignore real files/folders
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .? - [L]

RewriteRule ^blog/(.+?)$ /blog/index.php [L] # WP standard syntax
RewriteRule ^leaderboard/(.+?)$ /leaderboard/index.php?var=$1 [L]

I believe this may be what you're looking for. 我相信这可能是您想要的。

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^blog/(.+)$ /blog/index.php?path=$1
RewriteRule ^leaderboard/(.+)$ /leaderboard/index.php?path=$1

Then you can access the pages like so: 然后,您可以像这样访问页面:

http://domain.com/blog/something/somethingelse
http://domain.com/leaderboard/something/somethingelse

and in the background it would look like this: 在后台看起来像这样:

http://domain.com/blog/index.php?path=something/somethingelse
http://domain.com/leaderboard/index.php?path=something/somethingelse

You should write rewrite_rules like this code: 您应该像这样的代码编写rewrite_rules:

RewriteRule (.*)/(.*)/(.*)/(.*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L]

Your writing code matches anything. 您的编写代码与任何内容都匹配。

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

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