如何保持干净的url显示在浏览器中,而不是肮脏的重定向一个


How to keep the clean url displayed in browser and not the dirty redirected one?

我决定为我的产品创建干净的url链接,以便客户可以更好地记住链接。我已经研究了几个小时,但没有完全理解干净和脏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.

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]

用正确的解决方案更正了下面的。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]