清理URL无法在服务器上运行。

时间:2017-02-01 03:11:30

标签: php .htaccess

首先,如果这是一个稍微广泛的问题,我会道歉。我希望不是。

在我的本地主机上,我有这个htaccess:

Options +FollowSymLinks 
RewriteEngine On

RewriteRule ^/?([a-z]+)/?$ http://myasite.com/region.php?reg=$1 [QSA,L]
RewriteRule ^/?([a-z]{2})/(.*?)/(\d+)$ http://myasite.com/single-id.php?reg=$1&n=$3&area=$2 [L,QSA]

当我去:

  

http://myasite.com/uk

我被重定向到:

  

http://myasite.com/region.php?reg= $ 1

然而,URL与以下内容保持一致:

  

http://myasite.com/uk

哪个是完美的。但是,当我将其上传到我的站点服务器时,该URL不会保留干净的URL。

我已经问过服务器支持人员和实时聊天,我确信他们没有任何关于它的信息。我一直得到他们的答复'问题是htaccess,联系开发人员'

我的服务器有ControlPanel / WHM

有谁知道为什么干净的URL在服务器上不起作用但它们在我的本地主机上,有人可以提供帮助检查/修复此问题的步骤吗?

2 个答案:

答案 0 :(得分:1)

这可能与您的RewriteRule有关,因此请将其修改为以下内容:

RewriteRule ^([a-z]+)$ region.php?reg=$1 [QSA,L]

也值得将+替换为您可能遇到的每个地区的确切字符数,即{2} :-) - Example 功能

答案 1 :(得分:0)

请回复$ _SERVER [' SERVER_SOFTWARE'];以防万一服务器没有在nginx服务器上运行php文件。我曾经见过这一次。

<?php
    echo $_SERVER['SERVER_SOFTWARE'];
?>