1

我决定为我的产品创建干净的 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]
4

1 回答 1

1

更正 .htaccess 下面的解决方案完美运行。

你可以在这里演示:http ://www.tiedandtrue.com

Options +FollowSymLinks
RewriteEngine On

# if redirected to url cleaner, redirect to actual lookup file and
# these lines will keep the clean url visible in the browser
RewriteRule ^cat_url_cleaner.php ./cat_lookup.php [L]
RewriteRule ^subcat_url_cleaner.php ./subcat_lookup.php [L]
RewriteRule ^subsubcat_url_cleaner.php ./subsubcat_lookup.php [L]

# do not do anything if already existing file, symbolic link or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

# redirect clean url (/category) for processing
RewriteRule ^([a-zA-Z0-9_-]+)$ ./cat_url_cleaner.php?c=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ ./cat_url_cleaner.php?c=$1 [L]

# redirect clean url (/category/subcategory) for processing
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ ./subcat_url_cleaner.php?c=$1&s=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ ./subcat_url_cleaner.php?c=$1&s=$2 [L]

# redirect clean url (/category/subcategory/subsubcategory) for processing
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ ./subsubcat_url_cleaner.php?c=$1&s=$2&ss=$3
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ ./subsubcat_url_cleaner.php?c=$1&s=$2&ss=$3 [L]
于 2013-03-13T01:13:41.497 回答