大家好,我已经有好几天了,我不太高兴原谅我。
如果我有以下链接
<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>
答案 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就不会被解释了。