我为我的页面塑造了两个不同的RewriteRules: # Enable URL Rewriting RewriteEngine on # exclude followed stuff RewriteRule ^(js|img|css|favicon\.ico|image\.php|anprobe|content|libs|flash\.php|securimage)/ – [L,QSA,S=2] # conditions (REQUEST dont point @ file|dir|link) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-F RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l # rules RewriteRule ^(?!index\.php)brillen/(.*(brillen)|360|neu)/(.*)([a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}(?!\.))(.*)$ /index.php/brillen/$1?art_id=$4&$5&%{QUERY_STRING} [NS,QSA,L] RewriteRule ^(?!index\.php)(.*)$ /index.php/$1 [NS,QSA,L] …我遇到了一个奇怪的问题,这是每个请求导致内部页面加载两次,这导致了数据库操作和电子邮件分派也执行两次的问题。 有没有人有这个想法? 提前致谢! 注1:根据浏览器的资源跟踪,所有请求的资源都是有效的。 注2:问题可能源于保留和后处理PATH_INFO? (/index.php/$1 => /index.php/foo/bar / …)
我对ReWrite并不太缺乏经验(不过也不是主人),所以我希望somone能够帮助我。 RewriteRule ^$ index.php?page=home [NC] RewriteRule ^adm$ index.php?page=adm_home [NC] RewriteRule ^adm/stats index.php?page=adm_stats [NC] 以上是我的.htaccess文件的一个片段。 正如您所看到的,当某人访问http://www.example.com/adirectory/时 ,实际上会调用index.php?page = home,同样如果有人访问http://www.example.com/adirectory/adm /它仍然会在“adirectory”中调用index.php?page = adm_home。 我想要达到的是这样的:我想能够显示在我的网页上的警报,要做到这一点,我只想能够添加alert = n(其中n是一个数字),因此有redirect为的index.php?页=家庭与警告= N 但是,我不明白这是如何做到的,正则expression式使我困惑。 寻求你的帮助。
我有一个可能包含三个参数的URL: ?类别=电脑 与子类=笔记本电脑 &产物=戴尔灵-15 我需要301redirect这个URL到它友好的版本: http://store.example.com/computers/laptops/dell-inspiron-15/ 我有这个,但不能使它工作,如果查询string参数是以任何其他顺序: RewriteCond %{QUERY_STRING} ^category=(\w+)&subcategory=(\w+)&product=(\w+) [NC] RewriteRule ^index\.php$ http://store.example.com/%1/%2/%3/? [R,L]
我的问题似乎很简单,但我找不到一个简单的解决scheme。 这里有:我有一个主域,并指向该主域的多个域。 为了避免重复的内容,我试图将所有“二级”或“停放”域redirect到我的主域,以便它可以解决这个问题: www.parkeddomain1.com => www.maindomain.com www.parkeddomain2.com => www.maindomain.com www.parkeddomain3.com => www.maindomain.com 等等… 现在我发现这个htaccess代码是一种全面解决scheme(我更喜欢): RewriteEngine on RewriteCond %{HTTP_HOST} !^www.maindomain.com$ RewriteRule ^(.*)$ http://www.maindomain.com/$1 [R=301] 所以,这个代码工作时,我只处理简单的停放域名,而不是停放域名与子文件夹或子文件。 所以: www.parkeddomain1.com => www.maindomain.com redirect在这里工作正常,但是当我添加一个子文件夹发生这种情况: www.parkeddomain1.com/subfolder/ => www.parkeddomain1.com/subfolder/ 当我正在寻找的是: www.parkeddomain1.com/subfolder/ => www.maindomain.com/subfolder/ 所有这一切都是为了避免search引擎的重复内容问题。 感谢所有的答案,将指导我的解决scheme。 干杯!
我需要帮助在.htaccess的URL重写。 所以这个问题是关于不同的协议:https和http。 重写的主要目的是从URL中删除“www”,但协议应该保持原来的一致。 例如,当我有像http://www.domain.com/request这样的URL时,它应该被redirect到http://domain.com/request。 我用这些规则解决它: RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 但是,如果URL看起来像https://www.domain.com/request ,则应将其redirect到https://domain.com/request 。 不幸的是,无论当前的协议如何,上面的规则都会redirect到http 。 提前致谢。
我希望像server.com/foo这样的URL不区分大小写。 但是server.com/foo实际上获得了mod_rewrite到server.com/somedir/foo (假设“somedir”中的所有文件都是小写的。) 所以问题是,如何完成一个mod_rewrite如下所示: RewriteRule ^([^/]+)/?$ somedir/convert_to_lowercase($1) PS:这是一个方便的mod_rewrite备忘单 – http://dreev.es/modrewrite – 虽然它不能回答这个问题。 PPS:感谢Bee和Ignacio所有的帮助。 另外,这里有一个相关的问题: RewriteMap激活
这里是我目前在我的.htaccess文件中的代码: Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 我知道重写关于这个问题的所有其他post真的不符合我的标准,我不知道足够的语言来试图破译它。 基本上我需要的是这样的: 将“example.com”的所有实例redirect到“www.example.com” 将“ https //www.example.com”的所有实例redirect到“ http://www.example.com ” ,但1页除外 ! (万一它很重要,该页面的文件名是payments.php) 我有上面的代码工作,但对于我需要为HTTPS的1页,它是重写URL为http。 那一页必须是https。 谢谢,克里斯
我正在浏览GitHub.com,当注意到一个版本库的源代码时,我注意到,当你点击一个文件,源代码滑入并且URL改变了,但是它不会像刷新页面那样出现。 有谁知道这是怎么完成的? 我已经看到用#号完成了这个工作,特别是在创buildFlash网站的时候,但是我从来没有见过这样做,就像GitHub做的那样,没有#。 这是一个例子: https : //github.com/jquery/jquery 点击.gitattributes之类的文本文件,然后点击面包屑中的jQuery来查看我的意思。
我在我的网站的根目录中有一个网站http://www.example.com/ ,我添加了.htaccess文件来将http://example.com/的任何请求redirect到http://www.example。 COM / 最近我创build了一个新的部分“video”,所以video的URL是http://www.example.com/videos/ 。 在这个video文件夹中,我有另一个正在执行重写video条目的htaccess文件。 当我尝试访问http://example.com/videos/时,它不会将我redirect到http://www.example.com/videos/ 我认为.htacces不从父目录inheritance以前的规则。 任何人都可以告诉我什么可以是我可以在/ videos /文件夹的.htaccess文件中添加的规则,以便http://example.com/videos/的任何请求将被redirect到http://www.example。 com / videos / URL。
有没有办法将RewriteBase设置为相对于主机根的path当前文件夹(.htaccess文件所在的文件夹)? 我有一个CMS,如果我把它移动到我的主机中的目录,它不工作,除非我把RewriteBase设置为相对于主机根目录的path。 我希望我的CMS只能复制和粘贴,而不需要在htaccess中更改任何代码。 更新: 例如: webroot – sub_directory – cms – .htaccess 在这种情况下,我应该写在htaccess: RwriteBase / 如果我移动子目录内的htaccess我应该改变RwriteBase为: RewriteBase /sub_directory/ 所以我想要类似的东西 RewriteBase /%{current_folder}/