douren5490
2017-08-21 12:01
浏览 50
已采纳

使用尾部斜杠PHP Htaccess删除索引,index.php错误句柄

I need some help with my Htaccess code.

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule (.*)\.php$ $1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L,QSA]

My Directory Structure is:

Public_Html

  css/style.css
   img/icon.png
   /2/user.php
  index.php
  create.php

Now the above htaccess code is removing the .php extension from the URL.

Examples

 -> example.com/index.php -> example.com/index
 -> example.com/2/user.php -> example.com/2/user

Problems with this Htaccess File

  1. I want to hide the index too Example: example.com/index -> example.com

  2. If user types example.com/index.php then he should be redirected to example.com

  3. If user type things which do not exist then it should point to example.com

    Example: example.com///*/// -> example.com

  4. When it removes the .php extension then a trailing slash should be added to the end.

Example: example.com/create.php -> example.com/create/

  1. If a user wants to access create.php and enter /create without / at the end then it should be automatically added.

    Example: example.com/create -> example.com/create/

In other words, if after removing .php these both works as same

**Example:** example.com/create = example.com/create/
  1. But user should still be able to access the directory

    Example: example.com/2 -> example.com/2/

    Here 2 is a folder.

I have some problem with this htaccess script. I searched a lot on Google and Stack Overflow but still can't find any solution.

*This is not a duplicate question. Please check it carefully before marking it as a duplicate. I would be glad if you help me.

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题