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]

图片转代码服务由CSDN问答提供 功能建议

我正在尝试使用 .htaccess 来替换像示例这样的网址。 com / short example.com/short.php 但是当我测试配置时,我只在请求不存在的php脚本时才被重定向。 例如:页面 short.php 存在但 shor.php 当我请求 example.com/short 的页面时我还没有得到 example.com/short 的404页面,但是当我请求 example.com/shor 时,我得到 example.com/shor.php的404页面

我正在使用的 .htaccess 是:

  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]
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题