0

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

例如:我想要它,所以当用户单击链接时:/products/category/item.php 它实际上抓取了文件:/shop/category/item.php但仍显示为/products/category/item.phpURL

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

4

3 回答 3

2

您不需要 mod_rewrite。何时避免 mod_rewrite

将 url 目录映射到文件目录是 Apache 的一项基本功能,由mod_alias模式处理(您肯定已经有了)。

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

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

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

于 2012-12-10T12:32:47.523 回答
1

试试这个:

RewriteEngine On
RewriteRule ^products/(.*)  shop/$1 [L]
于 2012-12-10T12:22:42.870 回答
1

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_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]
于 2012-12-10T12:26:54.910 回答