代码之家  ›  专栏  ›  技术社区  ›  user1

我的htaccess出现500错误

  •  1
  • user1  · 技术社区  · 6 年前

    我有一个网站,我想写漂亮的网址。首先,我有一个删除 .php 工作正常的扩展。

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    

    上面的代码工作正常,但当我添加另一行删除查询字符串时,我得到了500个错误。

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^([^-]*)$ /listing?url=$1 [L]
    RewriteRule ^(.*)$ $1.php
    

    请帮忙

    这是url:

    http://bafana-dev.co.za/listing?url=orthopaedic-surgeon/western-cape/cape-town/sunningdale/preyen-naidu

    我想要的:

    http://bafana-dev.co.za/orthopaedic-surgeon/western-cape/cape-town/sunningdale/preyen-naidu

    2 回复  |  直到 6 年前
        1
  •  2
  •   Amit Verma    6 年前

    你可以用这个

    RewriteEngine On
    # if a file without .php extension is requested, rewrite it to .php
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule (.*)$ $1.php [L]
    # rewrite everything else (except /listing) to /listing?url=
    RewriteCond %{REQUEST_FILENAME} !listing
    RewriteRule ^([^.]+)$ /listing?url=$1 [L]
    

    500错误可能是由于无条件规则 RewriteRule ^([^-]*)$ /listing?url=$1 [L] 。规则重定向 /listing 以循环模式将其自身。我在上面添加了一个条件来排除目标路径。

        2
  •  0
  •   Diogo Jesus    6 年前
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f  
    RewriteRule ^(.*)$ $1.php
    RewriteRule ^([^-]*)$ /listing?url=$1 [L]
    

    就像我一样切换顺序,即使你得到一个白色页面,你能发布白色页面的当前URL吗?查看重定向在哪一点失败。