本文目录一览:
tp5根目录在入口时 路由重写写在哪?
路由配置:
路由文件,默认是应用目录下的route.php,
如果你入口文件定义过CONF_PATH常量,则路由要写到你定义的路径里面。
URL重写:
如果你说的是URL重写,只需要在入口文件同级目录下,添加apache配置文件。
文件名 .htaccess
内容:
IfModule mod_rewrite.c
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
/IfModule
如何使用thinkphp路由正则表达式优化地址链接
用thinkphp开发项目,其中搜索模块需要携带很多的参数,就会出现地址栏的链接很长,这样不仅看上去不美观,对于搜索引擎来说也是不友好的链接。于是,就需要将其修改成简短干练的地址链接。
thinkphp中是支持路由重写的,需要自己编写重写规则。在编写的过程中,遇到一个问题。可以说是一个老大难的问题,那就是中文,搜索关键字需要匹配中文。
在尝试各种正则匹配规则都失败的情况下,我这里只能写成?keyword=关键字的格式。
下面我们看,具体的实例:
未优化地址:
/model/search.php?style=317order=1isyear=0recommend=0bid=301sid=327keyword=关键字page=1
优化地址:
/model/search-316-0-0-0-301-327-1.html?keyword=关键字
路由正则:
'/^model\/search\-(\d*)\-(\d*)\-(\d*)\-(\d*)\-(\d*)\-(\d*)\-(\d*)$/'='Home/Search/model?style=:1order=:2isyear=:3recommend=:4bid=:5sid=:6page=:7',-php路由重写
理想的优化:
/model/search-316-0-0-0-301-327-关键字-1.html
apache开启路由重写功能
在php程序的目录下有一个htaccess文件,这个文件起着对url重写的作用
如果我们需要重写路由,则需要在
中将
中的 AllowOverride None 改成 AllowOverride All
然后重启apache
这是打开php应用会报一个505错误,解决方法是
这样就开启了apache的路由重写功能
php怎么打开重写 php重写URL的教程
1. 找到apache的安装目录下的conf下的httpd.conf文件,打开文件修改
LoadModule rewrite_module modules/mod_rewrite.so这行代码,他前面有个#号,把#号删掉
2. 还是那个文件,打开,找到
代码如下 复制代码
Directory /
Options FollowSymLinks ExecCGI Indexes
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
/Directory
这个节点,把None改为All. 3. 重启apache服务
4. 最关键的一点,在你得项目目录下创建.htaccess文件,文件没有名称,看上去只是后缀名
具体创建方法不能直接创建,先创建个txt文件(其他的也行),然后另存问,把名字改为.htaccess,并且选所有文件,创建好后,就要制定规则了。 在文件里写代码:
RewriteEngine on //on为打开,off为关闭
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$ index.php?action=$1id=$2
([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,如此类推!