【问题标题】:.htaccess rewrite counteracts my subdomain pages.htaccess 重写抵消了我的子域页面
【发布时间】:2013-07-23 03:52:57
【问题描述】:

这个 .htaccess 代码给我的子域 mobile.mixtapemonkey.com 带来了麻烦。当我尝试转到子域的页面(例如:mobile.mixtapemonkey.com/page.php)时,它会将我发送到我的常规域的 404 页面。当谈到 .htaccess 的东西时,我实际上是一个骨架,所以我希望如果有人可以重写它,那么它仍然会重写我所有的 .php 扩展名,并且仍然允许我正确使用我的子域。我并不担心重写子域扩展。

它还有一个奇怪的地方,当我在 facebook 上发布它时,它会将“/”变成 %2F,并不担心,但如果这是一个小修复,我会很感激。

Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1 [R=301,L]
RewriteCond %{THE_REQUEST} ^(.*)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.*)\.php$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
ErrorDocument 404 http://mixtapemonkey.com/404

【问题讨论】:

    标签: php .htaccess rewrite subdomain


    【解决方案1】:

    我认为%{THE_REQUEST} 的正则表达式不正确。
    如果你愿意,你可以在这里测试它:http://rubular.com/

    我用过这个,它对我有用:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
    RewriteRule ^ %1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^ %{REQUEST_URI}.php [L]
    

    【讨论】:

    • 谢谢!它工作得很好。我一定会开始使用该网站。再次感谢。
    • 我之前并没有真正注意到,但这实际上是针对 Ruby 正则表达式的。不确定是否有区别,但为了安全起见,也许可以使用这个网站:regexpal.com
    猜你喜欢
    • 2012-08-12
    • 2014-10-18
    • 2023-04-01
    • 2011-05-15
    • 2011-02-04
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多