帮助与动态URL的mod_rewrite规则
-
05-09-2019 - |
题
唉.. mod_rewrite的让我觉得自己很傻。我只是还没有包裹着我的大脑左右呢。 :/
我有此URL:
http://example.com/a/name/
...我想点这里:
http://example.com/a/index.php?id=name
...其中name
是什么,是获取传递到index.php
作为id
参数。
任何我已经尝试的结果在任何一个404或500 ..:(
解决方案
要开始您关闭:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L]
如果一个重写教程不适合你,尝试另一个工作
编辑:排除index.php
按浓汤的建议
其他提示
如果你想尾随斜线是可选的,你必须排除你重写请求文件。否则,你将有一个不错的无限递归。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/a/index\.php$
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L]
下面,与/a/…
启动,但它不/a/index.php
改写为/a/index.php
任何请求。
但是,如果最后的斜线是强制性的,也没有必要排除目标文件:
RewriteEngine on
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]
沿着线也许一些
RewriteEngine on
RewriteBase /a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA]
将达到目的。
我建议你先看看这个网址:
http://www.dracos.co.uk/code/ Apache的重写-问题/
所提出的解决方案,将工作,但也有一些需要注意的URL解释,主要是有关?和#中的URL本身。
不隶属于 StackOverflow