Articles of .htaccess

无法访问子文件夹中的控制器

正如我以前的问题所述 ,我是如何设法通过使用像myproject-local.com/admin/index这样的URL来解决这个问题。但是现在我已经添加了另一个控制器,在pipe理目录中的类别,当我去myproject-local.com/admin/category ,它给了我404 routes.php文件 $route['default_controller'] = "welcome"; $route['admin/(:any)'] = "admin/admin/$1"; $route['404_override'] = ''; 的.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> 我已经设置了$config['index'] = ''; 在我的config.php

多国使用.htacces

我正在尝试实现以下任一项目: http://ca.domain.com/Category/SubCategory – > http://www.domain.com/index.php?country=ca&category=Category&subcategory=Subcategory http://www.domain.com/ca/Category/SubCategory – > http://www.domain.com/index.php?country=ca&category=Category&subcategory=Subcategory 我浏览过,但不幸的是一直没有find任何工作的解决scheme。 对于第一种我尝试了下面的代码: Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com RewriteRule ^(.*)/$ http://www.domain.com/index.php&country=%1&category=$1 [L] 子域的问题是,它根本不在任何地方redirect。 我读了一遍,它说我需要设置通配符虚拟主机。 我一直无法弄清楚如何在godaddy上做到这一点。 所以不知道该怎么做。 至于第二种,我使用了下面的代码: RewriteEngine on RewriteRule ^(.*)/?(.*)/ home.php?country=$1&category=$2 [B] 但这对我也不起作用。 任何在这方面的帮助将不胜感激。 谢谢 至于类别和子类别,子类别是强制性的。 所以它也应该为以下链接工作: http://www.domain.com/ca/Toronto/Programming – > http://www.domain.com/index.php?country=ca&location=Toronto&subcategory=Programming http://www.domain.com/ca/Programming – > http://www.domain.com/index.php?country=ca&location=&subcategory=Programming 如果它是$ 1 =子类别或$ 2 =子类别,我不太清楚如何告知.htaccess,因为它们在场景1和2中切换。 感谢来自@anubhava的巨大帮助,我已经达到以下内容: Options +FollowSymLinks RewriteEngine […]

Mod重写目录检查

我有一个情况,我有几个客户,我希望能够通过mydomain.com/clientname访问他们的网站。 为了保持组织性,我将客户站点的实际文件存储在/ client / clientname中。 我可以通过在我的.htaccess中添加大量的这些行来达到预期的效果: RewriteRule ^client1(.*)$ /client/client1$1 [L] RewriteRule ^client2(.*)$ /client/client2$1 [L] 等等 我试图通过检查客户端目录是否存在于/客户端或更简洁的方式来做到这一点。 (如果我确定它不是一个有效的文件或目录)。 但由于某种原因,这似乎不起作用: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond /client/%{REQUEST_FILENAME} -d RewriteRule ^(.*)$ /client/$1 [L,QSA] 我错过了什么?

如何使用mod_rewrite来redirect和重写目录?

除非你知道你在做什么,否则不要将其标记为重复。 有些问题看起来很相似,但不是我要找的。 如果用户点击example.com/friendly-folder ,则应将其内部redirect到example.com/system-folder 。 但是,如果用户点击旧的example.com/system-folder ,则应将其从外部redirect到新名称example.com/friendly-folder 。 所以,基本上,目录URL必须是友好的,但指向旧的。 我相信,如果我没有任何条件就制定了两条规则,就会陷入无限循环。 我已经在我的.htaccess中试过了 RewriteRule ^friendly-folder(.*)$ system-folder$1 [NC,L] RewriteCond %{THE_REQUEST} ^GET\ /system-folder RewriteRule ^system-folder(.*)$ /friendly-folder$1 [R=301,NC,L] 这有效地从友好文件夹内部redirect到系统文件夹,但不从外部系统文件夹redirect到友好的文件夹。 有任何想法吗? 当你在这里,如果你有一个方法,也可以redirect和重写文件 ,将不胜感激。 更新 现在我已经尝试了这个configuration: RewriteRule ^friendly-folder(.*)$ system-folder$1 [NC,END] RewriteRule ^system-folder(.*)$ friendly-folder$1 [R=301,NC,L] 我得到这个错误日志: [Sun Jan 15 18:40:49.765190 2017] [rewrite:trace3] [pid 3936:tid 1896] mod_rewrite.c(477): [client ::1:50822] ::1 – – [localhost/sid#a92bb8][rid#2a52150/initial] [perdir […]

利用浏览器cachingjs?ver =

我在利用浏览器caching方面面临一个奇怪的问题。 在我的.htaccess我使用以下内容: ## EXPIRES CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/x-javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access […]

将rootredirect到subdir中的CodeIgniter应用程序,避免无限循环

我目前已经在我的CodeIgniter应用程序的目录中部署了以下.htaccess: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] 和我的htdocs根下面的.htaccess: RewriteEngine On # Map / to /foo. RewriteRule ^$ /foo/ [L] # Map /x to /foo/x unless there is ax in the web root. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/foo/ RewriteRule ^(.*)$ /foo/$1 foo是我的CodeIgniter应用程序所在的目录。 这会将example.com/foo/whateverredirect到example.com/whatever,除非它与其他应用程序所在的其他目录相匹配(例如example.com/admin/whatever,这应该保留这种方式)。 这部分行为是期望的。 但是,现在我有两个网站上的每一个网页,我有example.com/foo/whatever和example.com/whatever。 我想为所有从/ […]

如何将主域根切换到子文件夹,并阻止同时从主域访问插件域?

当我在我的智慧结尾时,我再次转向。 我的一个客户在一个托pipe计划上运行三个独立的网站。 我需要做的是将主要域内容转移到一个子文件夹,并将主域连接到它 maindomain.com/ 实际上被链接到 /maindomain/ 这是我的工作 RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com/$ RewriteCond %{REQUEST_URI} !^/maindomain/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /maindomain/$1 RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$ RewriteRule ^(/)?$ maindomain/index.html [L] 第二部分是问题。 我现在需要防止从主域访问插件域domainA和domainB。更复杂的是,domainA正在运行cakePHP,而domainB正在运行一个完全依赖于它的.htaccess的自定义框架 这些域位于webroot的子文件夹中 /domainA/ 和 /domainB/ 我尝试了以下,但它并没有阻止访问加载项域。 RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$ [NC] RewriteCond %{REQUEST_URI} ^/domainA/(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/domainB/(.*)$ [OR] RewriteRule ^(.*)$ – [L,R=404] 我真的可以用一些洞察力来做什么。

如何防止两个链接与.htaccess显示相同的内容?

我有这种情况: / css / < – 一个文件夹 /css/something.css < – 一个文件 如果用户访问文件夹(/ css /),我希望Apache返回文件。 如果用户试图直接访问文件(/css/something.css),我希望他被redirect到文件夹。 我怎样才能做到这一点,没有得到一个循环? 我读了很多,但我不知道应用两个规则,它总是返回一个循环。 注意:这是我堆栈溢出的第一个问题。 先谢谢你。

.htaccess URL和目录redirect

这是我的第一篇文章,请原谅,如果我的方式寻求帮助是错误的。 我一直在阅读与我的问题有关的其他职位,但没有解决它。 我自己的路: http://example.com/m/page1 http://example.com/m/page2 … 等等。 我想将/ m / pageX更改为/ m /#pageX,而不用硬编码URL,也不用使用任何额外的PHP脚本。 乍看之下,我通过编写下面的.htaccessconfiguration文件来完成这个任务: Options +FollowSymlinks -MultiViews RewriteEngine On RewriteBase / RewriteRule ^[dm]/(.+)$ /m/#$1 [R=302,NE,L,NC] ## hide .php extension RewriteCond %{THE_REQUEST} \s/+common_([^.]+)\.php[\s?] [NC] RewriteRule ^ %1 [R=302,L,NE] ## To internally forward RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/common_$1.php -f RewriteRule ^(.+?)/?$ common_$1.php [L] 我的代码是最好的解决scheme还是有其他方法来处理我的任务? 如何将/ m / […]

提交此表单时如何隐藏用户的url?

我有一个很多领域的表格… 提交这些字段时,我使用POST方法隐藏传递给PHP页面的实际variables。 但是,我无法摆脱完整的联系。 从GET更改为POST使所有表单字段在URL中不可见,但这部分仍然可见: mydomain.com/bin/query# 我希望它是隐形的,或者说: mydomain.com/search 我有mod_rewrite启用,所以有可能做到这一点与mod_rewrite我认为,但我是新来的mod_rewrite所以我需要你的帮助… 我应该如何隐藏这个url? 如果你需要更多的input,让我知道…