Articles of .htaccess

authentication之前强制https – 不能访问虚拟主机

在服务器方面,我是个初学者,而且我遇到类似于这个问题的问题。 访问所需的网页时,.htpasswd会在我被redirect到https之前提示我进行validation。 是否有任何解决方法仅通过编辑.htaccess文件,因为我没有权限更改虚拟主机configuration文件。 直到现在我的.htaccess文件中的相关行看起来像这样: BlockquotRewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{ENV:HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] AuthType Basic AuthName "members only" AuthUserFile /var/www/myweb/.htpasswd Require valid-user

通过NGINX阻止URL中的唯一散列

我需要通过nginx来阻止URL内的哈希。 需要被阻止的URL是 http://mp3string.com/video/Kill-My-DeMonZ—Mz-Sunday-Luv-%2B-Jeny-Cox-(-JopRec-)[email protected]%EF%BB%BF/mbqQMZXYL08` 现在,如果您看到URL,那么需要通过nginx来阻止唯一的散列“mbqQMZXYL08”。 我已经尝试通过添加到服务器块来阻止URL,但它不工作。 RewriteRule ^video/Kill-My-DeMonZ—Mz-Sunday-Luv-%2B-Jeny-Cox-(-JopRec-)[email protected]%EF%BB%BF/mbqQMZXYL08 – [F] 在我的网站上,每当有用户打开一首歌曲时,它都有一个独特的散列,因为它是一个mp3网站,而非网站上的歌曲,我有时会让DMCA删除这个url。 我在我的服务器块中使用的redirect: rewrite ^/mp3/([0-9]+)/([^/]*)/([^/]*)(/?)+$ /?do=song&source=$1&title=$2&id=$3 last; rewrite ^/video/([^/]*)/([^/]*)(/?)+$ /?do=video&id=$2&title=$1 last; rewrite ^/search.html(/?)+$ /?do=search&$args last; rewrite ^/embed/([0-9]+)/([^/]*)/([^/]*)(/?)+$ /embed.php?source=$1&title=$2&id=$3&$args last; rewrite ^/logout(/?)+$ /?do=logout last; rewrite ^/settings(/?)+$ /?do=user last; rewrite ^/settings(/?)+$ /?do=user last; rewrite ^/playlist/edit/([0-9]+)(/?)+$ /?do=edit_playlist&id=$1 last; rewrite ^/playlist/([0-9]+)(/?)+$ /?do=playlist&id=$1 last; rewrite ^/playlists(/?)+$ /?do=playlists last; rewrite ^/playlists/([0-9]+)(/?)+$ /?do=playlists&p=$1 last; […]

.htaccess等价规则?

为了防止从其他网站(盗链)或直接访问(键入url)的访问是相当于下面的.htaccess规则? 规则1 <files myfile_one.php> order allow,deny deny from all </files> <files myfile_two.php> order allow,deny deny from all </files> 规则2 RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] RewriteRule ^myfile_(one|two).php$ – [F,NC]

指定要查找.htaccess文件的直接存储器

我读过所有目录启用.htaccess导致性能开销,因为所有子文件夹也扫描.htaccess文件。 我只想将.htaccess文件读入:/var/www/xgclan.com/public_html和/var/www/xgclan.com/public_html/forum 我在我的apache2.conf中configuration了以下内容(对于/var/www/xgclan.com/public_html) <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options FollowSymLinks AllowOverride None Require all granted </Directory> <Directory /var/www/xgclan.com/public_html> Options FollowSymLinks AllowOverride All Require all granted </Directory> 但是,这似乎并没有工作..子目录也读取.htaccess文件 我应该提到xgclan.com是一个虚拟主机。 我究竟做错了什么? 我能够防止子目录检查.htaccess文件: <Directory /var/www/xgclan.com/public_html/> Options FollowSymLinks AllowOverride None Require all granted </Directory> […]

Apache2.4 mod_rewrite不会将我redirect到基于访问域的subdir

我有一个公共目录在/var/www/html的Apache2.4服务器。 在这个目录中,我有一个Wordpress网站,这个.htaccess : RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] 在同一级别的WP网站有一个RESTful API的子目录/var/www/html/api/ 并在/var/www/html/temp/ 我想达到的是: 当用户访问mydomain.com或www.mydomain.com ,他应该会看到login页面是以temp为根 当用户使用普通IP访问服务器时,他应该看到WordPress的博客(即xxx.xxx.xxx.xxx/显示为博客根目录),并且应该以相同的方式访问api( xxx.xxx.xxx.xxx/api/… ) 我在.htaccess尝试了很多组合,例如: RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ RewriteRule ^(/)?$ temp [L] RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] 但没有结果。 […]

将http结合到https和域redirect使用mod_rewrite

我正在尝试将www.example.comredirect到https://www.example.wordpress.com上的托pipe博客。 域名redirect工作,但给我一个403错误,因为它redirecthttp到https。 example.com永远不会被用在redirect之外,我不想为它获得一个ssl证书。 也有类似的问题(例如, htaccessredirect到https ),但是这些都解决了问题的两个部分之一( www.example1.com到www.example2.com或http://domain1.com到http://domain1.com )。 这是我目前的.htacess。 如何添加一些实际处理https问题而不会搞乱域redirect的内容? RewriteEngine on RewriteCond %{HTTPS} off RewriteRule (.*) https://www.example.wordpress.com [R=301,L] 更新:我的工作.htaccess文件是这样的; 显然wordpress.com做的redirect到https本身(我知道,但不能够以前工作): Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www.curiouscitytc.com$ [NC] RewriteRule ^(.*)$ http://www.curiouscommute.wordpress.com/$1 [R=301,L]

通过端口80redirectWebmailstream量?

我已经在BlueHost(共享服务器)上build立了一个网站,我已经在一个子目录中设置了webmail。 但每次我使用URL mywebsite.com/webmail时,它都会被重新路由到mywebsite.com:2095,由于端口被阻塞,办公室防火墙将不会连接到该网站。 任何人都可以协助和build议如何redirect服务器上的stream量到端口80? 我已经读过,redirect可以通过一个.htaccess文件来完成,但我不太确定如何编辑规则。 任何援助高度赞赏,更好的方法也是受欢迎的。

我如何强制mod_rewrite发送URI的用户信息组件?

一位同事build议我把这个从StackOverflow重新发布到ServerFault: 这一直使我疯狂。 我有一个通过Apache Web服务器提供的Web应用程序。 支持应用程序的数据库服务器是Apache CouchDB,它公开了HTTP API来检索文档和stream附件。 我通过提供一个安全对象来保护CouchDB数据库,该安全对象只允许某些用户访问数据库中的数据,并返回401匿名请求到HTTP端点。 我想能够映射公共URL到存储在这个数据库中的文档附件。 所以,我试图在我的.htaccess文件中创build一个重写规则,它将来自某些URL的请求直接代理到CouchDB,同时对用户凭证进行硬编码,如下所示: ## DOWNLOAD STREAM: RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule download/(.*) http://user:[email protected]:5984/database/$1 [P] 在理想的世界中,上面的例子将采用以下URL: http://example.com/download/UUID/attachment.ext 并代理它: http://user:[email protected]:5984/database/UUID/attachment.ext 这个方法确实将请求代理到CouchDB,但省略了URIscheme的userinfo组件。 所以,该请求被视为匿名,我得到一个401错误。 如果从数据库中删除安全性,附件只能stream式传输。 我花了几个小时阅读Apache的configuration和尝试无济于事。 由于所有相关的查询都有类似的关键字,networkingsearch是徒劳的。 我如何确保mod_rewrite包含在代理CouchDB时在重写规则中提供的用户名和密码?

如何在Apache的基本身份validation之前执行脚本?

我需要用htpasswd来保护一些位置,并且可以正常工作 : <Location /myloc> AuthType Basic AuthName "My Protected Area" AuthUserFile .htpasswd Require valid-user </Location> 但我需要以某种方式绕过Auth例如url / myloc / loc1而不是/ myloc / loc2。 原因是我想能够得到例如loc1和做一些数据库search。 例如: "select Status From table where url=/myloc/requested_loc" (loc1 or loc2 or any name) if Status == 1 return 1 else return 0 所以情景如下: 在浏览器提示用户/通过之前执行一些scritp 如果脚本返回0提示用户/通过脚本返回1不提示用户/通过和打开位置 一些想法:1.我想修改https://github.com/winlibs/apache/blob/master/2.4.x/modules/aaa/mod_auth_basic.c,但我不知道这是一个好主意(我是肯定这是可怕的想法)。 要有一些ScriptAlias / myloc /opt/script.py这将检查我需要在数据库中,然后如果1打开位置,如果2发送到浏览器401身份validation所需。 在那里我的想法结束了。 […]

将多个.htaccess文件与多个ErrorDocument 404条目一起使用

这是我想要完成的。 现在,在/ var / www我有一个.htaccess文件与多个ErrorDocuments定义的各种错误。 我也有子网站(即/ var / www / tf2c,/ var / www / obtf2)。 现在,我在这些目录中有任何缺失的页面链接到模板页面,以通知任何人查看网站已移到新主机的部分。 但是,我需要创buildLinks的许多链接,所以我宁愿使用单独的ErrorDocument作为/ var / www / tf2c文件夹来处理事情,这样我就可以完全放弃模板页面。 我试过的做法是在/ var / www / tf2c中放入一个.htaccess文件,并定义“ErrorDocument 404”,但是/ var / www中的原始.htaccess文件完全停止工作。 除非有人在/ var / www / tf2c或/ var / www / obtf2中浏览网站,否则我/ var / www的ErrorDocuments优先,这种情况下,这些网站优先使用.htaccess并显示它自己自定义404页面?