【问题标题】:htaccess RewriteRule removing extension not workinghtaccess RewriteRule 删除扩展不起作用
【发布时间】:2015-09-16 21:44:36
【问题描述】:

请帮我解决我的问题,RewriteRuel 1、2 和 3 正在工作。第 4 个 RewriteRule 不起作用,它发回 404 错误。

 1. RewriteRule pahina-(.*)-(.*)-(.*)$ pahina.php?page_id=$1&page_title=$2&user_name=$3 [L]
 2. RewriteRule pahina-(.*)-(.*)$ pahina.php?page_id=$1&page_title=$2 [L]
 3. RewriteRule pahina-(.*)$ pahina.php?user_name=$1 [L]
 4. RewriteRule ^pahina$ pahina.php [L]

第 4 个 RewriteRule 不起作用,我想要的是将 pahina.php 更改为 pahina only 没有扩展名...请帮助我...

谢谢和最好的问候......

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    这是用于删除 .php 扩展名的代码

    # Remove .php-extension from url
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}\.php -f
      RewriteRule ^([^\.]+)/$ $1.php
    

    将此添加到 .htaccess 文件中。这将删除所有 .php 扩展名。 在此处指定您的文件名

    【讨论】:

    • 已经尝试过你的代码@Santosh 它可以在我的本地机器上运行,但是当我将它上传到我的网站时仍然出现同样的错误......谢谢朋友......
    • 您是否尝试过重新启动服务器...并检查您是否正在编辑正确的文件。如果它有效,则接受答案,以便其他人可以使用它
    【解决方案2】:

    确保您的模式使用锚点以避免匹配不需要的文本:

    Options -MultiViews
    RewriteEngine On
    
    RewriteRule ^pahina-([^_]*)-([^_]*)-(.*)$ pahina.php?page_id=$1&page_title=$2&user_name=$3 [L,QSA]
    
    RewriteRule ^pahina-([^_]*)-(.*)$ pahina.php?page_id=$1&page_title=$2 [L,QSA]
    
    RewriteRule ^pahina-(.+)$ pahina.php?user_name=$1 [L,QSA]
    
    RewriteRule ^pahina$ pahina.php [L,QSA]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 2015-12-27
      • 2012-12-10
      相关资源
      最近更新 更多