用PHP参数替换URL/gallery/art/paris?
可能重复:用PHP参数替换URL/gallery/art/paris?,php,apache,rewrite,Php,Apache,Rewrite,可能重复: 我相信这已经被问过很多次了,但我不知道我在寻找什么,所以如果有人能给我指出正确的地方,那将是非常棒的 基本上,我有一个页面“gallery.php”,目前它从目录(第一部分是硬编码的)加载图像,然后输入url?a=art/paris,因此完整的url是gallery.php?a=art/gallery 有没有一种方法可以修改apache和/或我的php代码,以便用户可以键入/gallery/art/paris/或/gallery/art/paris并获得相同的结果?(在/galle
我相信这已经被问过很多次了,但我不知道我在寻找什么,所以如果有人能给我指出正确的地方,那将是非常棒的 基本上,我有一个页面“gallery.php”,目前它从目录(第一部分是硬编码的)加载图像,然后输入url?a=art/paris,因此完整的url是
gallery.php?a=art/gallery
有没有一种方法可以修改apache和/或我的php代码,以便用户可以键入
/gallery/art/paris/
或/gallery/art/paris
并获得相同的结果?(在/gallery/之后的任何内容都是我需要的参数。这就是你要找的吗
RewriteEngine on
RewriteRule ^gallery/([^/\.]+) gallery.php?a=$1 [L]
或者你可以更具体一些:
RewriteEngine on
RewriteRule ^gallery/([^/\.]+)/([^/\.]+) gallery.php?a=$1&b=$2 [L]
这就是你要找的吗
RewriteEngine on
RewriteRule ^gallery/([^/\.]+) gallery.php?a=$1 [L]
或者你可以更具体一些:
RewriteEngine on
RewriteRule ^gallery/([^/\.]+)/([^/\.]+) gallery.php?a=$1&b=$2 [L]
请尝试将其放入您的.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]
请尝试将其放入您的.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]
是的,有一种方法可以做到这一点。你需要的是在你的Apache服务器上安装并激活
mod_rewrite
。然后创建一个.htaccess
文件,在这个文件中你可以“告诉”Apache哪些URL需要重写,并指定规则如何完成。所以基本上你需要这样的东西
RewriteEngine On
RewriteBase /
RewriteRule ^gallery/([^/\.]+)/([^/\.]+)$ gallery.php?a=$1/$2 [L,NC]
是的,有一种方法可以做到这一点。你需要的是在你的Apache服务器上安装并激活
mod_rewrite
。然后创建一个.htaccess
文件,在这个文件中你可以“告诉”Apache哪些URL需要重写,并指定规则如何完成。所以基本上你需要这样的东西
RewriteEngine On
RewriteBase /
RewriteRule ^gallery/([^/\.]+)/([^/\.]+)$ gallery.php?a=$1/$2 [L,NC]
这几乎是我所需要的,但它与/art/paris不起作用。它只通过/art作为参数。我需要它通过/art/paris作为参数。你太棒了。非常感谢!(1)这三个重写秒会使它变慢,而且没有必要。(2)它也会导致/art/gallery/foo/bar/temp/test/任何东西也起作用。(3)这一个有很多重复内容的问题。无论如何,请更正我的答案:),这将反过来为这个页面上的未来访问者提供一个很好的答案。这几乎是我需要的,但它不适用于/art/paris。它仅传递/art作为参数。我需要它通过/art/paris作为参数。你太棒了。非常感谢你!(1) 这三个重写秒会使速度变慢,而且是不必要的。(2) 它还将使/art/gallery/foo/bar/temp/test/任何东西也起作用。(3) 这一个有很多重复的内容问题。无论如何,请更正我的答案:),这将反过来为这个页面上的未来访问者提供一个很好的答案。