我对htaccess很新。我已成功创建.htaccess文件,其中包含以下规则,可以使用漂亮的网址重定向用户。
我的实际网址
http://localhost/domain.com/Job-Details.php?Job_ID=30
我想要实现的目标
http://localhost/domain.com/30
我当前的htaccess
RewriteEngine On
RewriteBase /domain.com/
# Get the URI-path directly from THE_REQUEST variable
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\s/(.*)\.php [NC]
# Search friendly URLs for job detail page
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)$ Job-Details.php?Job_ID=$1 [NC,L,R=301]
我正面临的问题
任何想法我在这里做错了什么。
答案 0 :(得分:2)
请尝试使用以下/domain.com/.htaccess
代码:
RewriteEngine On
RewriteBase /domain.com/
# Redirect actual URI to SEF URI
RewriteCond %{THE_REQUEST} (?:GET|HEAD)\s\/domain.com\/Job\-Details\.php\?Job_ID\=(\d+) [NC]
RewriteRule ^ %1? [R=302,L,NE]
# SEF URI for Job-Details page
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d+)$ Job-Details.php?Job_ID=$1 [NC,QSA,L]
如果您对结果感到满意,请将R=302
更改为R=301
。请记住在测试之前清除缓存,否则您的浏览器可能会根据历史缓存重定向。
答案 1 :(得分:0)
改变这个:
RewriteRule ^([0-9]+)$ Job-Details.php?Job_ID=$1 [NC,L,R=301]
RewriteRule ^([0-9]+)$ Job-Details.php?Job_ID=$1 [L,QSA]
当R = 301时,您正在创建301重定向。