apache中的mod_rewrite条件,以删除.php不能按预期工作

时间:2012-04-10 19:40:30

标签: php .htaccess url mod-rewrite forwarding

RewriteEngine On

RewriteRule ^/showlisting/(.*)$ showlisting.php/$1 [L]
RewriteRule ^/listings/(.*)$ listings.php/$1 [L]

RewriteCond %{HTTP_HOST} ^mydomain\.
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

ErrorDocument 404 /notfound

在上面,这就是我想要实现的目标:

  1. 我想转发任何网址,例如www.mydomain.com/showlisting/my-listing-data/with-more-slashes/and-some-text,以显示www.mydomain.com/showlisting* <的内容em> .php * / my-listing-data / with-more-slashes / and-some-text但带有URL掩码,以便.php不会出现在浏览器窗口中。
  2. 我还希望在用于搜索引擎优化目的的请求中没有www时附加www,尽管我不确定这些日子有多重要。
  3. 当我访问www.mydomain.com/showlisting/my-listing-data/with-more-slashes/and-some-text但是它显示404错误,但是.php添加到showlisting,它工作正常。有任何想法吗?

    然而请注意附加www。工作正常 - 这不是我正在努力的部分,尽管我仍然包含了部分代码以进行全面分析。

1 个答案:

答案 0 :(得分:1)

也许

RewriteEngine On

RewriteRule ^showlisting/(.*)$ showlisting.php/$1 [L]
RewriteRule ^listings/(.*)$ listings.php/$1 [L]

RewriteCond %{HTTP_HOST} ^mydomain\.
RewriteRule ^$ http://www.mydomain.com/ [R=301,L]

ErrorDocument 404 /notfound