RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteCond %{THE_REQUEST} ^[a-zA-Z0-9-+/]{3,}\ /+company\.php\?title=([^\s&]+)
RewriteRule ^ %1? [R=301,L]
RewriteCond %{THE_REQUEST} ^[a-zA-Z0-9-+/]{3,}\ /+project\.php\?compname=([^\s&]+)&prjt=([^\s&]+)
RewriteRule ^ %1/%2? [R=301,L]
RewriteRule ^([^/]+)/?$ company.php [L]
RewriteRule ^([^/]+)/([^/]+)/?$ project.php [L]
我期望http://website.com/compname=Company&prjt=Project看起来像http://website.com/Company/Project。并且同样的方式是company.php页面。 Company.php页面按预期工作,但project.php页面无效。 Url按预期显示,但页面打开时出现完整错误。任何帮助都非常感谢?
答案 0 :(得分:0)
如果您缺少样式和脚本,则问题很可能是您在内容中使用了相对链接。从
更改URL时/project.php
到
/company/project
任何相对网址都会从/
更改为/company/
,这显然不是您想要的。
将所有链接设置为以/
开头的绝对网址,或者为网页标题添加基础:
<base href="/" />
答案 1 :(得分:0)
公司页面来到这里没有样式表(凌乱的样子)。
这就是我问你的问题。我们需要知道具体问题,因为错误打开与缺少样式表不一样。
通过在<head>
部分添加此标记来修复样式表问题。
<base href="http://www.website.co" />
在你的html for CSS / JS等中使用这种类型的mod_rewrite和相对URL时会发生这种情况。