我想生成搜索引擎友好的网址

时间:2013-07-30 13:16:51

标签: url mod-rewrite

我想生成搜索引擎友好的网址,例如: - 说我有一个下面的链接,如

http://www.apexengineeringproject.com/display_project.php?id=AP112&title=ADVANCED%20OFFICE%20AUTOMATION%20SYSTEM%20USING%20GSM%20AND%20MICROCONTROLLER

我只想要它

http://www.apexengineeringproject.com/display_project.php/AP112/ADVANCED%20OFFICE%20AUTOMATION%20SYSTEM%20USING%20GSM%20AND%20MICROCONTROLLER

我尝试在.htaccess中重写但是没有成功,即使我没有得到如何在链接转换为seo friendly时获取参数。所以有人请在这种情况下帮助我。

编辑:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} \/index\.php [NC] 
RewriteRule (.*) apexengineeringproject.com [R=301,L] 
RewriteRule ^display_project.php/([^/]+)/([^/]+) /display_project.php?id=$1&title=$2 [NC] 

这是我的.htaccess文件的内容,但问题是页面被加载但不是样式和javascripts。

1 个答案:

答案 0 :(得分:0)

最有可能的是,您使用相对文件名引用脚本/样式文件。浏览器将使用整个目录路径直到查询字符串之前的最后一个斜杠来获取相对路径。

例如,在重写之前使用页面时;

http://www.apexengineeringproject.com/display_project.php 

...它在scripts/test.js查找脚本,浏览器将从中获取;

http://www.apexengineeringproject.com/scripts/test.js

重写后使用页面时;

http://www.apexengineeringproject.com/display_project.php/AP112/ADVANCED%20OFFICE%20AUTOMATION%20SYSTEM%20USING%20GSM%20AND%20MICROCONTROLLER

...获取相对路径scripts/test.js将获取文件;

http://www.apexengineeringproject.com/display_project.php/AP112/scripts/test.js

......大概不存在。

要解决此问题,只需将脚本路径和css路径设置为相对于服务器根目录,即不要使用scripts/test.js,而是使用/scripts/test.js

编辑:虽然我认为它有点hacky,但你可以将一些文件重写回root。无法测试,但它应该接近你想要的;

RewriteCond %{REQUEST_URI} \.(jpg|css|png|js)$ [NC]
RewriteRule display_project.php/[^/]*(.*) $1 [NC]