重写1级url目录

时间:2012-12-10 12:15:56

标签: .htaccess mod-rewrite url-rewriting

我正在寻找重写url字符串的第一个目录,并让其余的请求仍然有效。

例如:当用户点击以下链接时,我希望如此:/products/category/item.php 它实际上抓取了以下文件:/shop/category/item.php但仍显示为/products/category/item.php作为网址

这是动态的,所以我应该像/products/$ /shop/$1一样猜测。

3 个答案:

答案 0 :(得分:2)

您不需要mod_rewrite。 when to avoid mod_rewrite

将url目录映射到文件目录是Apache的基本功能,由模式 mod_alias 处理(当然已经存在)。

所以基本上你有AliasAliasMatch指令。在你的情况下,第一个就足够了:

Alias /products/ /path/to/web/document/root/shop/

映射仅在服务器端完成,因此最终用户看到的URL永远不会被修改。

答案 1 :(得分:1)

试试这个:

RewriteEngine On
RewriteRule ^products/(.*)  shop/$1 [L]

答案 2 :(得分:1)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^products/(.+)$ /shop/$1 [L,NC]