所以这是我的htaccess文件,因为Wordpress提供它
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
我在/ events有一个页面,我想通过模板PHP文件添加一个文本块,具体取决于是否存在URL参数。
所以我在网上看了一下,并尝试为它写一个.htaccess规则。我想出的是这个
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^events/([^/\.]+)/?$ events/?flow=$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
但是,我认为这不符合我的要求。原始页面的链接是/ events?flow = open-evenings,在事件页面中,我有通常的$ _GET东西:
$flow = isset($_GET['flow']) ? $_GET['flow'] : '';
if($flow == 'open-evenings') { echo "blah"; }
但是当我尝试查看URL / events / open-evenings时,我得到404错误页面。我把规则放在了错误的地方,还是我没有做一些明显的事情?感谢所有帮助!
更新:这是使用Wordpress,所以也许我不应该使用已经重写的网址?我应该使用index.php吗?但是,这仍然会吸引我正在尝试使用的漂亮网址吗?
我已尝试将网址更改为index.php,尝试将其设置为正常工作,但是根据以下规则,我仍然会获得404页面。
RewriteRule ^events/([^/]*)$ /index.php?flow=$1
任何人都可以帮我试试这个吗?
答案 0 :(得分:3)
这将执行以下操作:
1> temp.example.com/save.php?item=xxxxx&id=xxx&type=1
2> temp.example.com/save.php?item=xxxxx&id=xxx&type=2
就像
1> temp.example.com/save/xxxxx/xxx
2> temp.example.com/save/xxxxx/xxx
您可以在root .htaccess中使用这些规则:
RewriteCond %{THE_REQUEST} /save\.php\?item=([^\s&]+)&id=([^\s&]+)&type=([^\s&]+)\s [NC]
RewriteRule ^ save/%1/%2/%3? [R=302,L]
RewriteRule ^save/([\w-]+)/([\w-]+)/([\w-]+)/?$ save.php?item=$1&id=$2&type=$3 [L,QSA,NC]
如果有帮助,请告诉我......
将所需的值替换为您的值。这是否与您需要的相似?