htaccess RewriteRule删除扩展无法正常工作

时间:2015-09-16 12:57:11

标签: php apache .htaccess mod-rewrite

请帮我解决我的问题,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只是没有扩展...请帮助我......

谢谢和最诚挚的问候......

2 个答案:

答案 0 :(得分:1)

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

List<MyItems> list = new LinkedList<>();
//Populate your list somehow.
list.stream()
.sorted((x1, x2) -> {
  String status1 = x1.pre_release[0].job_status;
  String status2 = x2.pre_release[0].job_status;
  if (x1.equals(x2)) return 0;
  else {
    if (x1.equals("FAILED")) {
      return -1;
    }
    else if (x1.equals("WARNING")) {
      return x2.equals("FAILED") ? 1 : -1;
    }
    else {
      return 1;
    }
  }
})
.collect(Collectors.toList());

在.htaccess文件中添加此项。这将删除所有.php扩展名。 在那里指定你的文件名

答案 1 :(得分:0)

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

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]