Php .htaccess更改服务器后出错

Php .htaccess更改服务器后出错,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我已经改变了我的主机,在一个我们使用.htaccess文件和类似代码的网站上出现了404错误,现在发生了什么,子cat页面显示了404错误 .htaccess代码是这样的----------有人能帮忙吗 Options +FollowSymLinks RewriteEngine on RewriteRule ^sandstone/(.*).html$ product.php?sandstone=$1 RewriteRule ^slate/(.*).html$ product.php?sl

我已经改变了我的主机,在一个我们使用.htaccess文件和类似代码的网站上出现了404错误,现在发生了什么,子cat页面显示了404错误

.htaccess代码是这样的----------有人能帮忙吗

Options +FollowSymLinks
RewriteEngine on
RewriteRule  ^sandstone/(.*).html$  product.php?sandstone=$1
RewriteRule  ^slate/(.*).html$  product.php?slate=$1
RewriteRule  ^marble/(.*).html$ product.php?marble=$1
RewriteRule  ^granite/(.*).html$    product.php?granite=$1
RewriteRule  ^artifacts/(.*).html$  product.php?artifacts=$1

RewriteRule  ^page/(.*)/sandstone/(.*).html$    product.php?page=$1&sandstone=$2
RewriteRule  ^page/(.*)/granite/(.*).html$  product.php?page=$1&granite=$2
RewriteRule  ^page/(.*)/marble/(.*).html$   product.php?page=$1&marble=$2
RewriteRule  ^page/(.*)/artifacts/(.*).html$    product.php?page=$1&artifacts=$2
RewriteRule  ^page/(.*)/slate/(.*).html$    product.php?page=$1&slate=$2

RewriteRule ^(.*)\.html$ $1.php [nc]

RewriteRule  ^action/(.*)/id/(.*)/cat/(.*)/sub_cat/(.*)shoppingcart.html$   shoppingcart.php?action=$1&id=$2&cat=$3&sub_cat=$4
RewriteCond %{HTTP_HOST} ^natural-stones-india.com
RewriteRule ^(.*)$ http://www.natural-stones-india.com/$1 [R=301,L]

<Files .htaccess>
order allow,deny
deny from all
</Files>

ErrorDocument 404 /missing.html
Options+FollowSymLinks
重新启动发动机
重写规则^sandstore/(.*).html$product.php?sandstore=$1
重写规则^slate/(.*).html$product.php?slate=$1
重写规则^marble/(.*).html$product.php?marble=$1
重写规则^granite/(.*).html$product.php?granite=$1
重写规则^artifacts/(.*).html$product.php?artifacts=$1
重写规则^page/(.*)/sandstore/(.*).html$product.php?page=$1&sandstore=$2
重写规则^page/(.*)/granite/(.*).html$product.php?page=$1&granite=$2
重写规则^page/(.*)/marble/(.*).html$product.php?page=$1&marble=$2
重写规则^page/(.*)/artifacts/(.*).html$product.php?page=$1&artifacts=$2
重写规则^page/(.*)/slate/(.*).html$product.php?page=$1&slate=$2
重写规则^(.*)\.html$$1.php[nc]
重写规则^action/(.*)/id/(.*)/cat/(.*)/sub_cat/(.*)shoppingcart.html$shoppingcart.php?action=$1&id=$2&cat=$3&sub_cat=$4
重写cond%{HTTP_HOST}^natural-stones-india.com
重写规则^(.*)$http://www.natural-stones-india.com/$1[R=301,L]
命令允许,拒绝
全盘否定
ErrorDocument 404/missing.html

尝试更改对.htaccess文件的访问权限 您应该能够通过FTP更改这些


你的网站看起来不错,因为我正在工作:

好的,让我们分析一些事实

  • Web服务器没有响应(内部服务器错误)

    结论:您的.htaccess文件在语法上似乎是正确的

  • Webserver正确地执行了一些重写,自定义错误文档也正常工作

    结论:您的.htaccess文件实际上是由Web服务器读取的

  • 乍一看,所有基于文档根目录的重写似乎都能正常工作 行得通,不行

结论:您的相对路径有问题

可能的解决方案:

RewriteEngine On
RewriteBase /
...

或者将重写目标设置为绝对值

e、 g


您可以直接在浏览器中转到
product.php吗?sandstore=$1
?(当然,传递
$1
的相关值。)
RewriteRule  ^sandstone/(.*).html$  /product.php?sandstone=$1