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

HTACCESS Rewrite、remove.php和redirect为一个规则而不是另一个规则工作

  •  0
  • AJFMEDIA  · 技术社区  · 8 年前

    我有下面的示例url,有很多可能的参数值

    http://www.example.com/area-codes.php?code=0000
    http://www.example.com/search.php?number=00000000000
    

    http://www.example.com/area-codes/0000
    http://www.example.com/number/00000000000
    

    目前,第二个url正在完美地重写和重定向。 但是,最上面的那个导致了一个内部服务器错误

    这是我的htaccess

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_URI} \.(jpg|css|js|gif|png)$ [NC]
    RewriteRule ^ - [L]
    
    #unless directory, remove trailing slash
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [R=301,L]
    
    #resolve .php file for extensionless php urls
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
    
    #redirect external .php requests to extensionless url
    RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
    RewriteRule ^(([^/]+/)*[^.]+)\.php /$1 [R=301,L]    
    
    RewriteRule ^area-codes/([^/]*)$ /area-codes.php?code=$1 [L,QSA]
    RewriteRule ^number/([^/]*)$ /search.php?number=$1 [L,QSA]
    

    我想我的国旗有问题吧?

    1 回复  |  直到 8 年前
        1
  •  0
  •   AJFMEDIA    8 年前

    #resolve .php file for extensionless php urls
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
    
    推荐文章