首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTACCESS重写和重定向问题

问HTACCESS重写和重定向问题
EN

Stack Overflow用户
提问于 2011-06-15 00:43:51
回答 1查看 158关注 0票数 0

1)我想创建一个重写规则,如果文件扩展名为PHP或(S)HTM(L),则删除URL末尾的文件。例如:

代码语言:javascript
复制
This: http://www.example.com/index.php
Becomes: http://www.example.com/

This: http://www.example.com/index.php?action=login
Becomes: http://www.example.com/?action=login

2)我想用我的.htaccess设置一些网址重定向,这样如果有人浏览某个路径,就会自动重定向到/index.php。例如:

代码语言:javascript
复制
This: http://www.example.com/classes/(index.php)
Redirected To: http://www.example.com/(index.php)

This: http://www.example.com/classes/class.php
Redirected To: http://www.example.com/(index.php)

This: http://www.example.com/classes/style.css
Redirected To: http://www.example.com/(index.php)

有什么线索吗?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-15 21:55:03

对于1)你可能会颠倒你的问题,mod-rewrite的工作是读取脏index.php并找到真正的文件,所以你想要的是使用一个错误的url (没有index.php),mod-rewrite会找到这个url。PHP Mod-rewrite不会修改你的,它是你的应用程序代码作业(PHP?)。

因此,假设您的应用程序正在编写以下url:

代码语言:javascript
复制
http://www.example.com/

apache将使用

代码语言:javascript
复制
http://www.example.com/index.php

或

代码语言:javascript
复制
http://www.example.com/index.htm

或

代码语言:javascript
复制
http://www.example.com/index.html

响应不是由mod-rewrite处理的,而是简单地由Apache配置指令处理。

代码语言:javascript
复制
DirectoryIndex index.php,index.htm,index.phtml

对于http://www.example.com/?action=login,它也应该可以工作。

对于2):嗯,这还不清楚。您总是希望重定向试图访问您的类目录的用户吗?然后是两件事:

  1. 如果这个目录不应该从web访问,将它放在web目录之外,没有人会看到它,如果它只包含php类,PHp可以包含不在web目录中的文件。如果它包含css和js文件,那么这是一个错误,在根目录中重定向它们肯定不会给它们一个js或css
  2. 你不需要修改重写来使simpel重定向,mod_alis,这是一个你肯定(99%的机会)放弃Redirect和RedirectMatch关键字的模块,所以你可以这样写:

类永久/ RedirectMatch /.* http://www.example.com/

像往常一样,检查this page:中可以轻松完成的规则,而无需进入mod-rewrite的大脑循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6347018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档