网址重写,但保持PHP后端相同?

时间:2014-02-01 20:16:14

标签: .htaccess url-rewriting

假设我有这个网址: 的 http://mydomain.com/app/editor/?id=59500

我想让这个网址在浏览器地址栏中显示以下内容: 的 http://mydomain.com/app/editor/59500

...但是PHP页面(“http://mydomain.com/app/editor/index.php”)保持不变。换句话说,我仍然想让这个页面能够执行$ _GET ['id'];并返回“59500”。

我会在HTACCESS中使用正则表达式吗?关于最佳方法和示例的任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

你想为此使用.htaccess重写。只有当URL以数字结尾时才能进行重定向(以避免重定向index.php)。

\d+获取所有数字,/?将允许在ID之后有斜杠的URLS。

类似的东西:

<ifmodule mod_rewrite.c>
       RewriteRule ^app/editor/(\d+)(/?)$ app/editor/index.php?id=$1
</ifmodule>

答案 1 :(得分:0)

尝试将这些规则添加到/app/editor/目录中的htaccess文件:

RewriteEngine On
RewriteBase /app/editor/

RewriteCond %{THE_REQUEST} \ /+app/editor/(index\.php)?\?id=([0-9]+)
RewriteRule ^ %1? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ index\.php?id=$1 [L]