0

可能重复:
重写任意数量的路径段以查询参数

我敢肯定这已经被问过很多次了,但我实际上并不知道我在寻找什么,所以如果有人能指出我正确的地方,那就太好了。

基本上,我有一个页面“gallery.php”,它目前从目录加载图像(第一部分是硬编码的),然后在 url 中输入 ?a=art/paris,所以完整的 URL 是gallery.php?a=art/gallery.

有没有办法可以修改 apache 和/或我的 php 代码,以便用户可以输入/gallery/art/paris//gallery/art/paris获得相同的结果?(/gallery/ 之后的任何内容都是我需要的一个参数。

4

3 回答 3

3

试着把它放在你的 .htaccess 中:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-F

RewriteRule ^gallery/([a-z-A-Z0-9\/]+)$ /gallery.php?a=$1 [NC]
于 2012-10-26T16:46:35.710 回答
1

是的,有办法做到这一点。您需要mod_rewrite在 Apache 服务器上安装和激活。然后创建一个.htaccess文件,您可以在其中“告诉”Apache 要重写哪些 URL,并指定如何完成的规则​​。所以基本上你需要这样的东西

RewriteEngine On
RewriteBase /
RewriteRule ^gallery/([^/\.]+)/([^/\.]+)$ gallery.php?a=$1/$2 [L,NC]
于 2012-10-26T16:48:41.703 回答
0

这是你要找的吗?

RewriteEngine on
RewriteRule ^gallery/([^/\.]+) gallery.php?a=$1 [L]

或者你可以更具体:

RewriteEngine on
RewriteRule ^gallery/([^/\.]+)/([^/\.]+) gallery.php?a=$1&b=$2 [L]
于 2012-10-26T16:45:34.103 回答