打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一个斜杆在apache配置中的问题
本地机器环境:  

  <IfModule rewrite_module>
   RewriteEngine On
   RewriteCond %{SCRIPT_FILENAME} !-f
   RewriteCond %{SCRIPT_FILENAME} !-d
   RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>

服务器环境:

    <IfModule rewrite_module>
   RewriteEngine On
   RewriteCond %{SCRIPT_FILENAME} !-f
   RewriteCond %{SCRIPT_FILENAME} !-d
   RewriteRule ^/(.*)$ /index.php/$1 [QSA,PT,L]
    </IfModule>


很奇怪的问题,就一个thinkphp的重写规则,上面那个在本地机器上行,下面那个在服务器上行,但是如果调换一下就两个都不行了,好奇怪的斜杆。
url是  域名/products,错误提示是File not found.找不到文件,但是 域名/index.php/products能正常访问,
先说说环境配置,都是apache+php,本地机器是php作为apache的模块运行,而服务器上是php-fpm,用的是fastCGI模式运行。可能差别就在这里,照例系统本身不应该有差别,都是ubuntu14.04,

更奇怪的是服务器上的那个重写规则必须写到虚拟主机目录中去才行。如果只是放在.网站根目录下的.htaccess中,有没斜杠都不行,如下所示

<VirtualHost *:80>

ServerName ····
ServerAdmin   ····
DocumentRoot  /var/www/···

<Directory /var/www/···>
        AllowOverride All
#        Options All
Options -Indexes +FollowSymLinks +ExecCGI

    </Directory>

    <IfModule rewrite_module>
   RewriteEngine On
   RewriteRule \.(js|ico|gif|jpg|JPG|png|PNG|css|pdf|swf)$ - [L]

   RewriteCond %{SCRIPT_FILENAME} !-f
   RewriteCond %{SCRIPT_FILENAME} !-d
   RewriteRule ^/(.*)$ /index.php/$1 [QSA,PT,L]
    </IfModule>

    <IfModule mod_fastcgi.c>
    ScriptAlias /php-fpm/ "/usr/local/php5.3/sbin/"
    FastCgiExternalServer /usr/local/php5.3/sbin/php-fpm -host 127.0.0.1:9000
        AddHandler php-fastcgi .php
        Action php-fastcgi /php-fpm/php-fpm
    </IfModule>

</VirtualHost>



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
apache配置php实现单一入口方法
thinphp apache url重写有关问题
linux下WordPress apache伪静态规则设置
php中fastcgi和php-fpm是什么东西
apache的虚拟域名rewrite配置以及.htaccess的使用
PHP教程 59 - 静态页面优化(2)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服