我决定为我的产品创建干净的 url 链接以用于 SEO 目的,以便客户更好地记住链接。我已经研究了几个小时,但还没有完全理解干净和肮脏的 url 重定向概念。你会认为在这个主题上会有更简单的文档可用。
我的 .htaccess 文件配置如下,并且可以完美地获取用户键入的干净 url 或干净的链接,例如 www.example.com\Category\Subcategory\ 并将其重定向到 .php 文件以访问 MySQL 表并显示产品信息。
我想不通的是如何在浏览器中向用户显示干净的 url,而不显示脏的或重定向的 url?这是在 .htaccess 文件中完成的吗?
为了更清楚:
如果客户键入:www.example.com\shoes\running,.htaccess 会将干净的 url 重定向到 subcat_lookup_clean.php?c=$1&s=$2,它基本上会处理干净的 url 并查找适当的信息并动态显示它。
但是现在客户在他们的浏览器中看到了 www.example.com\subcat_lookup_clean.php?c=$1&s=$2。
相反,我希望他们看到干净的 url www.example.com\shoes\running。
.htaccess 文件包含:
Options +FollowSymLinks
RewriteEngine On
# do not do anything for already existing file, symbolic link or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
# redirect category/subcategory to lookup page
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ ./subcat_lookup_clean.php?c=$1&s=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ ./subcat_lookup_clean.php?c=$1&s=$2 [L]