dsa88886666 2015-01-20 15:08
浏览 56
已采纳

.htaccess仅在目标不存在时重定向

I am trying to use .htaccess to alias a url like example.com/short to example.com/short.php but when I test the configuration I only get redirected when I request a php script that doesn't exist. For example: the page short.php exists but shor.php does not yet when I request the page for example.com/short I get the 404 page for example.com/short but when I request example.com/shor I get the 404 page for example.com/shor.php

the .htaccess I am using is:

RewriteEngine on
RewriteRule ^s/([A-Za-z0-9-]+)/?$ short.php?code=$1 [NC]
RewriteRule ^([A-Za-z0-9-]+)/?$ $1.php [NC,L]
  • 写回答

1条回答 默认 最新

  • dscrb00804 2015-01-20 15:24
    关注

    Use that in your .htaccess :

    RewriteEngine on
    Options -MultiViews
    
    # skip all files and directories from rewrite rules below
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]
    
    RewriteRule ^s/([A-Za-z0-9-]+)/?$ short.php?code=$1 [NC,L]
    
    RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
    RewriteRule ^([A-Za-z0-9-]+)/?$ $1.php [NC,L]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?