GVKun编程网logo

htacess URL 重写器在我的主机上不起作用(url重写技术)

10

对于htacessURL重写器在我的主机上不起作用感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍url重写技术,并为您提供关于.htaccess–URLRewrite在Nginx中不起作用、.

对于htacess URL 重写器在我的主机上不起作用感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍url重写技术,并为您提供关于.htaccess – URL Rewrite在Nginx中不起作用、.htaccess 我写的重定向怎么不起作用、.htaccess不起作用啦!该如何解决、.htaccess文件没有被读取(“.htaccess文件中的选项 – 索引”不起作用)的有用信息。

本文目录一览:

htacess URL 重写器在我的主机上不起作用(url重写技术)

htacess URL 重写器在我的主机上不起作用(url重写技术)

您能否尝试使用所示示例进行以下操作、编写和测试。请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine ON
RewriteRule ^(All\.dll)/?$ dlldata.php?$1 [L]
RewriteRule ^(character)/(B)/?$ ?$1=$2 [L]

第一条规则重写从 All.dll 到 dlldata.php?$1 的 url,其中 $1 是第一个返回引用值。第二条规则适用于从字符/B 开始的 uri,然后将它们重写为 ?$1=$2。

.htaccess – URL Rewrite在Nginx中不起作用

.htaccess – URL Rewrite在Nginx中不起作用

URL重写在Nginx中不起作用,操作系统是Ubuntu 12.4 Lts

当打开http://mvc.loc它正在工作
但是当我试图打开http://mvc.loc/login不工作时

404未找到

Nginx的/ 1.1.19

.htaccess

<IfModule !mod_rewrite.c>
    ErrorDocument 500 "mod_rewrite must be enabled"
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$/index.PHP?u=$1

mvc.loc的虚拟主机

server {
    listen 80;
    server_name mvc.loc;
    access_log /var/log/Nginx/mvc.loc.access.log;
    error_log /var/log/Nginx/mvc.loc.error.log;
    root /usr/share/Nginx/www/mvc;

    index       index.PHP;


    # use fastcgi for all PHP files
    # Are you sure you have this set up?
    location ~ \.PHP${
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.PHP;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # deny access to apache .htaccess files
    location ~ /\.ht {
     deny all;
    }

}

解决方法:

location / {    
   rewrite ^(.*)$/index.PHP?u=$1 last;
}

.htaccess 我写的重定向怎么不起作用

.htaccess 我写的重定向怎么不起作用

.htaccess

RewriteRule ^products/list/([0-9]+) products/list.php?category_id=$1&%{QUERY_STRING} [L]
原先的有这个重定向,注释掉后 ***/products/list/10 这样的链接就不能访问了,打开后就好使

然后我再他下面写了个新的
RewriteRule ^products/list/category_id/(0-9]+)/parent_category/(0-9]+) products/list.php?category_id=$1&parent_category=$2 [L]
就是把 products/list?category_id=37&parent_category=35 成  products/list/category_id/37/parent_category/35

为什么我的新写的没作用??应该怎么写?

回复讨论(解决方案)

正规写法就行了

数字那两个地方写错了吧,(0-9]+) 应该是 ([0-9]+)

谢谢#2 这个简单地好使了,products/list/category_id/37/parent_category/35 这样的eurl好使了
现在问题是 
提交表单后,url里还是? & = 的形式。 products/list?category_id=37&parent_category=35(get提交表单)
怎么把url的形式给改掉,改成 products/list/category_id/37/parent_category/35 ??

这个就只能在php里面把所有链接地址改回来了

.htaccess不起作用啦!该如何解决

.htaccess不起作用啦!该如何解决

.htaccess不起作用啦!
本帖最后由 weihua99 于 2012-03-29 02:37:04 编辑 .htaccess内容如下:
RewriteEngine On
RewriteBase /
RewriteRule ^cms/5gameweb/statics/css/5g/css/(.*\.css) /combine.php?type=css&files=$1
RewriteRule ^cms/5gameweb/statics/css/5g/js/(.*\.js) /combine.php?type=javascript&files=$1

Windows7环境,安装phpStudy集成环境。

httpd.conf已经修改了如下内容:

LoadModule rewrite_module modules/mod_rewrite.so
Options All
AllowOverride All

AccessFileName .htaccess

无法生效,.htaccess编码用EditPlus也改为ANSI了。.htaccess跟combine.php文件都放在根目录。不知道还会有什么原因。。。
------解决方案--------------------
重新建一个试试
------解决方案--------------------

引用:
重新建一个试试


重建一个.htaccess文件吗?这没啥区别吧,我实在找不出还有哪里会出问题额。
------解决方案--------------------
顶上去,来者有分啊。
------解决方案--------------------
.htaccess不是应该UTF-8吗?
------解决方案--------------------
引用:
.htaccess不是应该UTF-8吗?


额,改UTF-8也不行
------解决方案--------------------
该回复于2012-03-30 09:14:08被版主删除

.htaccess文件没有被读取(“.htaccess文件中的选项 – 索引”不起作用)

.htaccess文件没有被读取(“.htaccess文件中的选项 – 索引”不起作用)

我只用下面一行创build了一个.htaccess文件:

选项 – 索引

但是,索引仍显示在目录中。

我刚刚安装了Apache2,并使用所有的默认值(我没有修改apache2.conf或httpd.conf)。

Apache .htaccess <目录不允许在这里

htaccess文件以某种方式被caching?

为什么在使用http gzip压缩之后,png大小不会改变

使用htaccess修复拼写错误的url

htaccess重写URL的PHP参数

操作系统: Ubuntu 12.04 (Precise Pangolin)

Apache2版本: Server version: Apache/2.2.22 (Ubuntu) Server built: Feb 13 2012 01:51:56

$ ls -l .htaccess

-rwxr-xr-x .htaccess

编辑:

我接受了lanzz的build议,并在.htaccess文件中添加了乱码,并发现.htaccess文件没有被读取。

将所有stream量redirect到保持页面,除非使用.htaccesslogin

如果通过htaccess查询string参数不存在,则将HTTPSredirect到HTTP

RewriteCond和重写规则取决于域的redirect

使用mod_headers和PHP-fpm / mod_fastcgi的问题

htaccess干净的URL不被读取的Apache?

您应该检查Apache配置是否允许执行.htaccess。 在你的虚拟主机配置中,应该有一行:

AllowOverride All

如果没有,这就是为什么.htaccess没有生效。

为了达到这个目的,我在/etc/apache2/httpd.conf (默认安装了Apache的时候是一个零长度文件),然后重新启动了Apache。 现在, Options -Indexes .htaccess文件中的.htaccess工作正常。 这是最低限度的工作要求:

/etc/apache2/httpd.conf :

<VirtualHost *:80> DocumentRoot /var/www <Directory / > </Directory> </VirtualHost>

lanzz建议在.htaccess文件中添加一段乱码,看看是否正在读取,这有助于诊断问题。

请注意,根据Evan Mulawski的评论, AllowOveride默认为All ,所以在上面最小的一组httpd.conf行中不需要。

我有同样的问题。 我正在使用一个虚拟主机,所以我修改了httpd-vhosts.conf,所以如果你正在使用一个这可能会有所帮助

在你配置你的主机引用的地方,目录标签和你的文档根目录一样

<VirtualHost *:8080> serverName somelocalserver DocumentRoot "C:/Websites/htdocs/yoursite" <Directory "C:/Websites/htdocs/yoursite"> Options FollowSymLinks AllowOverride All </Directory>

我需要AllowOverride All来识别.htaccess文件。

编辑

我还需要在路径标记本身中添加站点根目录的路径。 即<Directory "C:/Websites/htdocs/yoursite"> 。 这是我使用的样本中的默认值。

由于不再有httpd.conf文件,你需要在VPS上做什么:

转到/etc/apache2/sites-enabled/

做ls为您正在寻找的网站找到文件

使用nano THE_CONF_FILE编辑相应的文件,或者使用任何你想要的编辑器

将所有在<Directory> ... </Directory>看到的AllowOverride None值更改为AllowOverride All

保存该文件并关闭它

现在,您需要通过运行以下命令启用模块重写: sudo a2enmod rewrite

最后要激活新的配置,你需要运行: service apache2 restart

它现在就像一个魅力工作!

如果你有

AllowOverride None

将其更改为:

AllowOverride All

在你的httpd.conf文件里或者在/etc/apache2/sites-available/…conf里默认的虚拟主机文件中

我通过编辑文件/etc/http/conf/httpd.conf在RHEL上解决了这个问题

AllowOverride None

AllowOverride All

您也可以在RHEL上通过以下命令检查httpd.conf AllowOverride

grep -i AllowOverride /etc/conf/conf/httpd.conf

此外,除了将AllowOverride All更改为vhost配置文件之外,还可能需要在.htaccess文件的开头添加以下内容:

RewriteEngine On RewriteBase /

否则可能仍然没有检测到重写或重定向。

关于htacess URL 重写器在我的主机上不起作用url重写技术的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.htaccess – URL Rewrite在Nginx中不起作用、.htaccess 我写的重定向怎么不起作用、.htaccess不起作用啦!该如何解决、.htaccess文件没有被读取(“.htaccess文件中的选项 – 索引”不起作用)等相关内容,可以在本站寻找。

本文标签: