我需要的结果是:
http://mywebsite.co/company.php?title=company-name
应该看起来像
http://mywebsite.co/company-name
以同样的方式:
mywebsite.co/project.php?compname=compan-name&prjt=project-name
应该看起来像
mywebsite.co/company-name/project-name
这是我的代码:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /company.php
RewriteCond %{QUERY_STRING} ^title=([A-Za-z0-9-]*)$
RewriteRule ^company\.php$ http://mywebsite.co/%1? [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /project.php
RewriteCond %{QUERY_STRING} ^compname=([A-Za-z0-9-/]*)&prjt=([A-Za-z0-9-/]*)$
RewriteRule ^project\.php$ http://mywebsite.co/%1/%2? [L]
这两条规则是单独使用的IF。但如果在一个文件中一起使用,则只有一个规则(project.php
)正在运行。第二个规则(company.php
)需要的URL结构,但内容为空(站点布局,页眉和页脚即将到来)。
有任何帮助吗?
答案 0 :(得分:2)
这应该可以解决问题。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteCond %{THE_REQUEST} ^GET\ /company\.php\?title=(.+)
RewriteRule ^ %1? [R=301,L]
RewriteCond %{THE_REQUEST} ^GET\ /project\.php\?compname=(.+)&prjt=(.+)
RewriteRule ^ %1/%2? [R=301,L]
RewriteRule ^([^/]+)/([^/]+)/?$ project.php [L]
RewriteRule ^([^/]+)/?$ company.php [L]
让我知道它对你有用。
答案 1 :(得分:0)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ company.php [L]
RewriteCond %{QUERY_STRING} ^title=([A-Za-z0-9-]*)$
RewriteRule ^company.php$ http://mywebsite.co/%1 [2]? [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /project.php
RewriteCond %{QUERY_STRING} ^compname=([A-Za-z0-9-/]*)&prjt=([A-Za-z0-9-/]*)$
RewriteRule ^project.php$ http://mywebsite.co/%1/%2 [3]? [L]'
我改变了我的代码。有效。 :)