【发布时间】:2016-06-23 22:16:01
【问题描述】:
我对 htaccess 很陌生。我已成功创建具有以下规则的 .htaccess 文件,以使用漂亮的 url 重定向用户。
我的实际网址
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]
我面临的问题
- 没有发生漂亮 url 的重定向。我仍然看到旧网址
- 当我直接在地址栏中输入漂亮的 url 时使用提到的 htaccess,页面显示正常,但 url 会自动更改为我当前的 url。
知道我在这里做错了什么。
【问题讨论】:
-
第一个条件似乎缺少规则。这样的规则需要将旧的 URI 重定向到新的 URI。然后第二批将新旧重写。另外,您需要从第二批的规则中删除
R=301。 -
是的,我在第一个条件和 RewriteRule 之上添加了 RewriteCond %{THE_REQUEST} \Job-Details.php?Job_ID=([0-9]+) [NC] 。 Job-Details.php [L] 在两个提到的条件之后。然后重新启动服务器停止 url 更改为旧的。但是重定向到新的漂亮 url 仍然是一个问题。
标签: php apache .htaccess redirect mod-rewrite