【问题标题】:Remove .php extension and add one slash删除 .php 扩展名并添加一个斜杠
【发布时间】:2015-02-28 18:08:03
【问题描述】:

美好的一天

我只是被困在我想删除 .php 扩展名并制作一个斜杠的事情的中间

我现在的网址是

http://example.com/campus.php?college=BGIET,%20Sangrur

现在我想把它改成

http://example.com/campus/BGIET,Sangrur

是否有可能做到这一点,我不知道如何做到这一点

是的 /mod_rewrite 已启用

证明:-

RewriteEngine On
RewriteRule ^google.html$ http://www.google.com/ [R=301]

转到 http://www.example.com/google.html 重定向到 Google.com,因此它已启用..

请帮帮我(._.)

【问题讨论】:

    标签: .htaccess web


    【解决方案1】:

    您可以在 DOCUMENT_ROOT/.htaccess 文件中使用此代码:

    Options -MultiViews
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{THE_REQUEST} /campus\.php\?college=([^\s&]+)\%20([^\s&]+) [NC]
    RewriteRule ^ campus/%1%2? [R=302,L,NE]
    
    RewriteCond %{THE_REQUEST} /campus\.php\?college=([^\s&]+) [NC]
    RewriteRule ^ campus/%1%2? [R=302,L,NE]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^campus/(.+?)/?$ campus.php?college=$1 [NC,L,QSA]
    

    【讨论】:

      【解决方案2】:

      将此添加到您的网络根/ 目录中的.htaccess

      RewriteEngine on
      
      RewriteCond %{THE_REQUEST} \ /campus\.php\?college=([^\s&]+) [NC]
      RewriteRule ^ /campus/%1? [R=301,L]
      
      RewriteCond %{REQUEST_FILENAME} !-d # not a dir
      RewriteCond %{REQUEST_FILENAME} !-f # not a file
      RewriteRule ^campus/(.*)$ /campus.php?college=$1 [NC,L]
      

      第一个规则确保如果使用旧 URL,用户会自动重定向到新 URL。第二条规则在后台将非php链接解析为php链接。

      【讨论】:

      • 非常感谢您的回答,但它显示“内部服务器错误”
      • 您的 htaccess 中还有其他规则吗?
      • 不,我只是把你的代码。它显示“内部服务器错误”
      • 您使用哪个网址访问该网站?
      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2017-07-14
      相关资源
      最近更新 更多