我们正在从一个子域迁移到另一个子域。 这个特定的域名有几个网站的子集。 我已经设置了以下重写来处理全局redirect: 在docroot/.htaccess (“规则#1”) RewriteEngine On RewriteCond %{HTTP_HOST} ^virtual\.example\.com$ RewriteRule ^(.*)$ http://events.example.com/$1 [L,R=301] 它通常工作,除了有几个网站有自己的重写规则。 例如, /roadshow/2015/具有以下全面规则: 在docroot/roadshow/2015/.htaccess (“规则#2”) RewriteCond %{REQUEST_URI} ^(.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.php$ RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L] 问题: /roadshow/2015/下的页面继续加载,就像规则1不存在一样。 我在这里错过了什么? 🙂
我试图采用caching来加快网站的响应时间。 我读过的大部分文档都build议将访问时间设置为+1个月,如下所示: ExpiresActive On ExpiresByType text/css "access plus 1 month" 我担心,如果我更新一个css文件,客户端将不会得到更新的文件。 是否有可能确保客户端下载新版本的文件,如果它被修改? 任何帮助太多appreicated
我的htaccess文件有以下两行 RewriteRule ^payment payment.php RewriteRule ^payment-confirmed payment-confirmed.php 当试图访问payment-confirmed.php它只是去payment.php(付款) – 我猜这是因为它只读取第一个字,并认为它已经find的位置。 有没有一种方法可以configuration我的htaccess文件,以避免这种情况?
我有一个静态的HTML网站,由Apache 2.4使用SSI服务。 我一直在使用基本身份validation来控制对文件子集的访问,并且已经停止了预期的行为。 基本上我想要做的就是要求网站的某些部分的用户名/密码。 我已经包含了我认为是相关的configuration,更改了一些名称以保护隐私。 /etc/apache2/sites-enabled/example.conf <VirtualHost *:80> ServerName site.example.com:80 ServerAdmin webmaster@localhost DocumentRoot /var/www/site <Directory /var/www/site/> Options Includes Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/error.log </VirtualHost> /var/www/site/.htaccess AuthType Basic AuthName "Site Access Control" AuthBasicProvider file AuthUserFile /var/www/site/passwords /var/www/site/dir1/dir2/protected-dir/.htaccess require valid-user 据我了解,我已经configuration了我的虚拟主机的网站目录。 在顶层目录中,我configuration了基本authentication。 在那些我希望控制访问的目录中,我需要一个有效的用户。 .htaccess文件应该相应地组合。 当我浏览到: site.example.com/dir1/dir2/protected-dir 我被授予访问该页面,其内容是可见的。 这不是我所期望的。 在Apache2错误日志中,我得到以下内容: [Sat Jul […]
我有一个网站与http和https。 我在.htaccess中设置了为http运行的以下行。 标题集Access-Control-Allow-Origin“*” 但用https我得到这个错误。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' https://dl.dropboxusercontent.com '因此不允许访问。 我试了下面没有运气。 标题集访问控制允许来源“*”env = HTTPS 任何方式设置HTTPS的访问控制 – 允许源头的.htaccess? 这是我完整的.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> <IfModule mod_headers.c> Header always set Access-Control-Allow-Origin "*" </IfModule> 这是我的虚拟主机设置 <VirtualHost *:443> ServerAdmin admin@localhost DocumentRoot /var/www/html/domain ServerName domain.com SSLEngine […]
Laravel将正常呈现默认/根页面。 但不会呈现默认路由或错误页面。 我的网页浏览器将返回与Apache(不Laravel)错误页与我尝试和访问/testing 这里有一些信息(请让我知道如果你需要更多的细节) 服务器目录树 /var/www/ └── html ├── access.log ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── error.log ├── gulpfile.js ├── package.json ├── phpspec.yml ├── phpunit.xml ├── public ├── readme.md ├── resources ├── server.php ├── storage ├── tests └── vendor 视图(testing视图是默认欢迎视图的副本) /var/www/html/resources/views/ ├── errors │ └── 503.blade.php […]
我需要重写我的网站,其中包含%3F的url? 和%3D到= 我试过这个规则: RewriteCond %{HTTP_HOST} myhostname RewriteRule ^(.*)%3F(.+)%3D(.+)$ $1?$2=$3 [L,R=301] 和这个: RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /([^\%]+)\%3[Ff]\%3[dD]([^\ ]+)\ HTTP/ RewriteRule \.*$ %1?%2=$3 [R=301,L] 但没有工作。 请帮助。 谢谢。
我试图做一个简单的redirect到维护页面,但似乎像Apache不会让我这样做! 我有一个维基的3个版本的文件夹(每个都有一个特定的语言),所以我想redirect每个维基交通到他自己的维护页面。 这里是我的.htaccess #Redirect trafic to maintenance page RewriteEngine On RewriteCond %{REQUEST_URI} !maintenance.htm$ [NC] RewriteRule "(.*\/wiki.*\/).*" "$1/maintenance.htm" [R=302,L] mod_rewrite已启用 AllowOverride All已启用 我testing了我的正则expression式https://regex101.com/r/jN2kA7/1 RewriteRule ^。* $ maintenance.htm [R = 302,L]奇怪地redirect到http://myserver/var/www/wiki/maintenance.htm 目标是将“myserver / wiki / ANYTHING”redirect到“myserver / wiki / maintenance.htm” 如果有人能告诉我我做错了什么,这将是很好的 谢谢 编辑: 经过一些更多的testing,似乎我正在寻找类似的东西 RewriteRule "(.*)" "??PROTOCOL??://%{HTTP_HOST}/??SITEFOLD??/maintenance.htm" [R=302,L]
在Apache 2虚拟主机中,我有以下configuration(在我的情况下,文档根目录的.htaccess (为简单起见,http:80和https:443也是如此) RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 为了将任何http连接redirect到https而且, ErrorDocument 500 /error.php ErrorDocument 404 /error.php ErrorDocument 403 /error.php ErrorDocument 402 /error.php ErrorDocument 401 /error.php 生成自定义错误消息。 第三个要素是一个受保护的子文件夹,需要进行身份validation(每个.htaccess在该文件夹中): AuthType Basic AuthName "Test" AuthUserFile /some/path/to/passwords Require user joe 一切工作正常,除非有人试图检索http://example.com/protectedfolder事实上,会发生什么事情是,客户端获得302 Found答复redirect到https://example.com/error.php 另一方面, 如预期的那样, https://example.com/protectedfolder会导致一个自定义(即,由error.php生成) 401 。 http://example.com/publicfolder导致302redirect到https://example.com/publicfolder ,然后301永久redirect到https://example.com/publicfolder/ ,最后(因为DirectoryIndex被禁用)a自定义403错误。 正如所料。 而且, http://example.com/nonexistent也会导致302到https://example.com/nonexistent ,然后按照预期的那样定制404 。 如果我禁用了ErrorDocument 401configuration,则http://example.com/protectedfolder的查询会立即生成401 […]
我最近在我的网站上启动了一些caching控制,似乎有些function因此而停止工作。 我的PHP内容不再更新。 在Chromenetworking工具中,我可以看到一些PHP脚本请求大小(来自caching)。 我尝试刷新页面,但它仍然没有更新。 只有当我从Chrome中删除整个caching数据时才会更新。 我试图删除我在.htaccess中做了什么,但它并没有更新。 我如何声明PHP脚本不应该保存在caching中? 目前,JavaScript文件使用ajax和GET方法来更新一些不再更新的HTML文本。 我的.htaccess: AddDefaultCharset UTF-8 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php ## EXPIRES CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 month" # Media: images, video, audio ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/jpg "access […]