PHP的URL问题
在线等,多谢。
回复讨论(解决方案)
houtai目录放在view下,不在根目录下
你是怎么让你主机去访问view下文件呢?
如果你的部署符合当前使用PHP框架的规范,不可能出现这种问题
另外提醒一下,http://ip/houtai 如果你没有写rewrite,它本身就是访问根目录的houtai文件夹,然后寻找下面的index.php/.html等等 至少要改成http://ip/index.php/houtai
如果你的部署符合当前使用PHP框架的规范,不可能出现这种问题
另外提醒一下,http://ip/houtai 如果你没有写rewrite,它本身就是访问根目录的houtai文件夹,然后寻找下面的index.php/.html等等 至少要改成http://ip/index.php/houtai
恩 怀疑是伪静态开启的有问题
你的框架现在有用什么重写规则吗?如果没有,那么在根目录读取houtai是正常的。
你是想写一个重写规则,访问 http://ip/houtai rewrite 到 http://ip/view/houtai ?
服务器上写下重写规则就可以了吧,把houtai映射到/view/houtai下
你的框架现在有用什么重写规则吗?如果没有,那么在根目录读取houtai是正常的。
你是想写一个重写规则,访问 http://ip/houtai rewrite 到 http://ip/view/houtai ?
我不想直接到根目录下寻找文件,想让服务器先忽略掉ip/后的文件或文件夹,先到根目录index.php中,然后通过PHP的MVC框架解析出URI,然后到view下寻找。这种方式通过.htaccess可以吧?呵呵,PHP新手求指导。
你的框架现在有用什么重写规则吗?如果没有,那么在根目录读取houtai是正常的。
你是想写一个重写规则,访问 http://ip/houtai rewrite 到 http://ip/view/houtai ?
我不想直接到根目录下寻找文件,想让服务器先忽略掉ip/后的文件或文件夹,先到根目录index.php中,然后通过PHP的MVC框架解析出URI,然后到view下寻找。这种方式通过.htaccess可以吧?呵呵,PHP新手求指导。
补充:我的控制器里也有houtai这个文件夹
有什么问题就直接说,何必绕那么一个圈子
RewriteEngine on#如果目录存在就直接访问目录不进行RewriteRuleRewriteCond %{REQUEST_FILENAME} !-d#如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)RewriteCond %{REQUEST_FILENAME} !-f#所有找不着实际路径的文件,统一交给index.php处理RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
你需要写一条伪静态的规则把你的期望的url指向index.php,ip/后的文件或文件夹作为参数传给index.php.
比如 这样:RewriteRule ^(.*)$ /index.php?/$1
具体怎么写规则 需要看你的框架是怎么解析url的
有什么问题就直接说,何必绕那么一个圈子
RewriteEngine on#如果目录存在就直接访问目录不进行RewriteRuleRewriteCond %{REQUEST_FILENAME} !-d#如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)RewriteCond %{REQUEST_FILENAME} !-f#所有找不着实际路径的文件,统一交给index.php处理RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
我在根目录下.htaccess里写了,不生效啊。
http://www.jb51.net/article/25476.htm
你的框架现在有用什么重写规则吗?如果没有,那么在根目录读取houtai是正常的。
你是想写一个重写规则,访问 http://ip/houtai rewrite 到 http://ip/view/houtai ?
我不想直接到根目录下寻找文件,想让服务器先忽略掉ip/后的文件或文件夹,先到根目录index.php中,然后通过PHP的MVC框架解析出URI,然后到view下寻找。这种方式通过.htaccess可以吧?呵呵,PHP新手求指导。
那就是网站使用单入口的rewrite了,同thinkphp一样。
在项目的根目录下面建立一个.htaccess文件,里面写入下面的内容:
RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
开启.htaccess方法
打开httpd.conf(在那里? APACHE目录的CONF目录里面),用文本编纂器打开后,查找
(1)
Options FollowSymLinks
AllowOverride None
改为
Options FollowSymLinks
AllowOverride All
(2)去掉下面的注释
LoadModule rewrite_module modules/mod_rewrite.so
http://www.jb51.net/article/25476.htm
我在Apache conf中加载rewrite模块时报 module rewrite_module is built-in and can't be loaded,应该是内建的,不用再Load了吧。然后在vhost的conf中设置了 AllowOverride All, 可是.htaccess还是不生效。
http://www.jb51.net/article/25476.htm
我在Apache conf中加载rewrite模块时报 module rewrite_module is built-in and can't be loaded,应该是内建的,不用再Load了吧。然后在vhost的conf中设置了 AllowOverride All, 可是.htaccess还是不生效。
.htaccess 一直不生效,如果把重写规则放到vhost下的conf中,网站会报400错误。求大家帮忙
上一篇: 利用PHP实现 XML和MySQL的相互转换_PHP
下一篇: 小词典(php)