.htaccess影响我的PHP包括

时间:2015-10-24 00:05:05

标签: php .htaccess mod-rewrite

大家好,我已经有好几天了,我不太高兴原谅我。

如果我有以下链接

<a href="<?=$linkLocations?>">Best Locations</a>

定义了这个变量:

$linkLocations = $URL . '/best-locations';

并在我的.htaccess文件中:

RewriteEngine on          
RewriteCond %{HTTP_HOST} !^$    
RewriteCond %{HTTP_HOST} !^www\. [NC]    
RewriteCond %{HTTPS}s ^on(s)|    
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^([a-zA-Z0-9\_\-]+)$ subpage.php?page=$1 [NC]    
RewriteRule ^([a-zA-Z0-9\_\-]+)/$ subpage.php?page=$1 [NC]

,这在subpage.php中:

if ($page == 'best-locations') {
        include($ROOT .'/display/bestLocations.php');
        $mainContent .= $locationContent;
    }

bestLocations.php有sql查询等。 。但是因为我得到了404,我知道我甚至没有那么做对吗?这是在wamp上运行的实时站点的下载版本,如果这有帮助的话。您的输入超出了文字

编辑 - 这是通过从我的.htaccess

中删除以下行来解决的
# compress text, html, javascript, css, xml:    
AddOutputFilterByType DEFLATE text/plain    
AddOutputFilterByType DEFLATE text/html    
AddOutputFilterByType DEFLATE text/xml    
AddOutputFilterByType DEFLATE text/css    
AddOutputFilterByType DEFLATE application/xml    
AddOutputFilterByType DEFLATE application/xhtml+xml    
AddOutputFilterByType DEFLATE application/rss+xml    
AddOutputFilterByType DEFLATE application/javascript    
AddOutputFilterByType DEFLATE application/x-javascript  

ExpiresActive On    
ExpiresByType image/gif A2592000    
ExpiresByType image/jpeg A2592000    
ExpiresByType image/jpg A2592000    
ExpiresByType image/png A2592000    
ExpiresByType image/x-icon A2592000    
ExpiresByType text/css A604800    
ExpiresByType application/javascript A604800    
ExpiresByType application/x-shockwave-flash A2592000    
<FilesMatch "\.(gif¦jpe?g¦png¦ico¦css¦js¦swf)$">    
Header set Cache-Control "public"

</FilesMatch>

1 个答案:

答案 0 :(得分:2)

导致失败的原因有很多。

“HTTP 404:Not Found”响应意味着脚本subpage.php(以及bestLocations.php)未被调用。

您可能想要调试重写过程: How to debug Apache mod_rewrite

这个.htaccess有用吗?

Options +FollowSymLinks

RewriteEngine on          

RewriteRule ^([a-zA-Z0-9\_\-]+)/$ subpage.php?page=$1 [NC]
RewriteRule ^([a-zA-Z0-9\_\-]+)$ subpage.php?page=$1 [NC]    

出于测试目的,我已经删除了HTTPS相关的东西,我也在最后交换了两行,这样第一个“x /”被替换,然后是“x”。

另外,您提到此代码是从某个地方下载的。这个来源是否提到了所需环境的一些内容?这个可下载的系统是否适用于其他机器?

更新 PS:只是为了100%确定您的服务器接受.htaccess文件:尝试在.htaccess文件中写入垃圾,看看是否收到“HTTP 500:内部服务器错误”响应。如果没有,那么你的.htaccess就不会被解释了。