这是我的规则: RewriteRule ^user/(\d+)$ rewrite.php?id=$1 这个redirect,但是$_GET['id']没有被设置。 如果我将上述规则更改为: RewriteRule ^anything/(\d+)$ rewrite.php?id=$1 有用。 为什么一个工作,而不是另一个? 以下是更多信息: 没有名为user目录 层次结构中唯一的其他.htaccess文件是空白的。 anything都可以被user以外的东西取代。 更新:我检查了rewritelog ,它是空的。
我有一个简单的Apacheconfiguration的问题。 当用户要求https://mydomain.com我必须redirect到https://www.mydomain.com ,因为我的https证书是有效的只是与www域。 我创build了vhost.conf到我的/var/www/vhosts/mydomain.com/conf/目录里面: <Directory /var/www/vhosts/mydomain.com/httpsdocs> AllowOverride All </Directory> 而我的.htaccess文件进入/var/www/vhosts/mydomain.com/httpsdocs/是: RewriteEngine on RewriteCond %{HTTPS_HOST} ^mydomain\.com RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L] 但似乎完全忽略.htaccess。 任何想法?
我有以下的RewriteRule。 这将重写所有以mac , linux或windows开头的内容: RewriteCond $1 ^(mac|linux|windows) [NC] RewriteRule ^(.*)$ /index.php/site/index/$1 [L] 不幸的是,这也重写/mac/test/testing 。 如果/mac之后有另一个segmend,我怎么能阻止它的应用?
我正在一个客户端网站上工作,这个客户端托pipe在某个人的DIY Debian Linux服务器上[Apache / 1.3.33(Debian GNU / Linux)],我正在尝试安装一个需要PHP5的脚本。 默认情况下,服务器根据phpinfo() ,使用PHP 4.3.10-22(在/etc/php4/apache/php.iniconfiguration)parsing.php文件。 在服务器上,我可以看到PHP5的一个configuration目录,它与PHP4目录相邻: /etc/php5.0/apache2/php.ini 。 我已经尝试了多种方法来启用站点文件所在文档根目录下的PHP5,包括这里提到的所有可用的方法 。 到目前为止,我发现的最常见的build议是将以下一行或两行添加到网站的.htaccess文件中: AddHandler application/x-httpd-php5 .php AddType application/x-httpd-php5 .php 麻烦的是,当这些行中的任何一行或两行都存在时,网站强制我的浏览器下载任何请求的.php文件,根本不parsingPHP。 上述文章中提到的所有其他方法会导致500内部服务器错误。 没有托pipe控制面板,我可以在浏览器中访问该站点的PHP5,但我有shell访问。 当我向服务器pipe理员询问这个问题时,他鼓励我在Google上search答案。 我在哪里可以开始解决这个问题? 有没有方法来testing或validation服务器的特定PHP5安装和configuration,使用命令行或其他方法? 你有其他的build议来启用PHP5吗?
我想写一个重写scheme,以便: user1.example.net将redirect到example.net/user/user1 user2.example.net将redirect到example.net/user/user2 这是我在我的.htaccess代码。 但它总是redirect到example.net 。 RewriteCond %{http_host} ^[^.]+\.example\.net [NC] RewriteRule ^([^.]+)\.example\.net(.*) http://example.net/user/$1 [R=301,L] 有人能告诉我我做错了什么吗?
刚刚搬到GoDaddy共享主机和我试图让我的.htaccess规则工作。 下面是我拥有的: ErrorDocument 404 /error.php Options FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.mydomain\.org$ RewriteRule ^(.*)$ http://mydomain.org/$1 [R=301,L] RewriteRule ^view/(\w+)$ viewitem.php?itemid=$1 [R=301,L] RewriteRule ^category/(\w+)$ viewcategory.php?tag=$1 [R=301,L] RewriteRule ^faq$ faq.php RewriteRule ^about$ about.php RewriteRule ^contact$ contact.php RewriteRule ^submit$ submit.php RewriteRule ^contactmsg$ handler-contact.php 所有网页@根域的似乎是工作,即mydomain.org/faq,mydomain.org/about正在工作。 但每当我尝试mydomain.org/category/somecategory,我得到了一个404.我怎样才能修复我的.htaccess服从这些规则是超过1级深? 谢谢, 编辑:我已经修改了以下规则: RewriteRule ^view/(.*)$ viewitem.php?itemid=$1 RewriteRule ^category/(.*)$ viewcategory.php?tag=$1 任何人都可以证实/否认,这是解决这个问题的正确方法吗?
我有两个域名托pipe在两个不同的服务器:domain1.com&domain2.com 我想使用CNAMEredirect将“ blog.domain1.com ”转发到“ blog2.domain2.com ”,这是一个WordPress博客。 在我安装Wordpress之前。 blog.domain1.com(= redirect =>)blog2.domain2.com/index.htm (工作正常) 浏览器将保持URL( http://blog.domain1.com )甚至index.htm在domain2.com服务器上。 但是,我安装WordPress后 ,浏览器将URL更改为( http://blog2.domain2.com ) 这是我目前的设置: 在domain1.com DNS上: blog.domain1.com CNAMEredirect到domain2.com 在domain2.com上 .htaccess: Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^blog\.domain1\.com RewriteRule ^(.*)$ http://blog2.domain2.com/$1 [R=301,L] 在blog2.domain2.com .htaccess上: DirectoryIndex index.php <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteBase /blog2/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule […]
我有3个示例域,并希望将此.conf转换为.htaccess,以便我不必一直重新启动我的Apache一次我更新了我的子域设置。 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.myserver.com DocumentRoot /www </VirtualHost> <VirtualHost *:80> ServerName marhazk.myserver.com DocumentRoot /www/marhazk.com </VirtualHost> <VirtualHost *:80> ServerName perfectworld.myserver.com DocumentRoot /www/perfectworld.com </VirtualHost> 任何想法如何?
一个子目录是否有自己的.htaccess文件,它与根目录中的.htaccess文件不同? 提前致谢, 约翰
我的几个客户创build了一个“A”logging,将他们网站的一个子域指向我的服务器。 例如, http://subdomain.clientsite.com指向我的IP地址。 这工作正常。 但是,如果我手动插入前缀,如“www”,使URL看起来像“ http://www.subdomain.clientsite.com ”它解决了我的网站,而不是客户的网站。 我可以添加除“www”之外的任何内容作为前缀。 什么是禁用“子子域”的最佳方法是什么? 似乎可以通过每个客户端的vHost文件或通过.htacess命令来完成。 但是,我不知道最好的办法。 谢谢你的想法。