我们最近进行了服务器切换,将重写托管在服务器上,而不是托管在 .htaccess 文件中。我收到了服务器上重写规则的 htaconf.txt 打印输出。我尝试修复重写两次,但问题并未解决。我认为唯一重要的两个重写是第 4 行的 WordPress 重写和 team.php 重写,我在其中放置了许多井号以使其脱颖而出。
新托管商的工作人员还在服务器上安装了 NGINX - 我不确定这是否会对重写规则产生任何影响,但目前我还不确定它能做什么。任何帮助、提示或建议都将不胜感激。
很抱歉该文件太长了,但我不确定文件的哪些部分可能导致错误 - 我认为这只是代码的前半部分,但我把其他代码放在那里只是为了确保我没有遗漏任何东西。
/var/www/domain.com/ajax/.htaccess
<Directory /var/www/domain.com/ajax>
# AddHandler php5-script .php
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
ExpiresActive on
ExpiresDefault A0
php_flag display_errors on
php_value error_reporting 7
<FilesMatch "\.(inc|class)$">
SetHandler application/x-httpd-php
</FilesMatch>
Options +FollowSymLinks
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
#php_value session.save_path /mnt/target02/344586/385371/www.domain.com/web/sessions/
php_value session.cache_expire 10800
php_value session.gc_maxlifetime 10800
php_value session.gc_probability 1000
php_value session.gc_divisor 100
#php_value upload_tmp_dir /mnt/target02/344586/385371/www.domain.com/web/tmp/
#php_value session.save_path /mnt/target02/344586/385371/www.domain.com/web/sessions/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !(www.domain.com)$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC,L]
RewriteCond %{QUERY_STRING} ^sport=(.*)&conference=(.*)&school=(.*)&player=(.*)$
RewriteRule ^player-profile-new\.php$ /%1/%2/%3/%4? [R=301,NC,L]
RewriteRule ^search(/(.*))?$ /search-results?q=$2 [NC,L]
#RewriteRule ^birthdays(/(.*))?$ /birthdays.php?by=$2 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*/)?((p)[0-9]+)/edit/deleteimage/([0-9]+)(/)?$ /player-profile?formmode=edit&sport=$1&conference=$4&school=$5&player=$7&deleteimage=1&imageid=$9 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*/)?((p)[0-9]+)/(edit)(/)?$ /player-profile?formmode=edit&sport=$1&conference=$4&school=$5&player=$7 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*/)?((p)[0-9]+)(/)?$ /player-profile?formmode=view&sport=$1&conference=$4&school=$5&player=$7 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)(/([^/]*)(/)?)?$ /team?sport=$1&conference=$4&school=$5&sort=$7 [NC,L]
RewriteRule ^directory/((foot|basket)(ball))/([^/]*)/([^/]*)(/([^/]*)(/)?)?$ /seoteam?sport=$1&conference=$4&school=$5&sort=$7&seo=yes [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)$ /team?sport=$1&conference=$4&school=$5 [NC,L]
RewriteRule ^((foot|basket)(ball))(/)?$ /directory?sport=$1 [NC,L]
RewriteRule ^directory/((foot|basket)(ball))(/)?$ /fulldirectory.php?sport=$1&seo=yes [NC,L]
RewriteRule ^players/([^/]*)$ /player-profile.php?player=$1 [NC,L]
RewriteRule ^images/playerphotos/([^/]*)/([^/]*).jpg$ /playerphoto.php?player=$2&size=$1 [NC,L]
RewriteRule ^images/interviewphotos/([^/]*)/([^/]*).jpg$ /interviewphoto.php?interview=$2&size=$1 [NC,L]
RewriteRule ^images/captcha(.)(.)([0-9]{3}).jpg /validate.php?char=$1&type=$2&cachebuster=$3 [NC,L]
RewriteRule ^featured-interview/((p)[0-9]*)$ /featured-interview.php?playerid=$1 [NC,L]
RewriteRule ^playerpictures$ /imageviewer.php?id=181&playerid=8357&height=480&width=370&ajaxgallery=true [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</Directory>
/var/www/domain.com/wp-content/plugins/wp-minify/min/.htaccess
<Directory /var/www/domain.com/wp-content/plugins/wp-minify/min>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([a-z]=.*) index.php?$1 [L,NE]
</IfModule>
</Directory>
/var/www/domain.com/wp-content/w3tc/pgcache/.htaccess:
<Directory /var/www/domain.com/wp-content/w3tc/pgcache>
# BEGIN W3TC Page Cache
AddDefaultCharset UTF-8
<IfModule mod_mime.c>
AddType text/html .gzip
AddEncoding gzip .gzip
</IfModule>
<IfModule mod_deflate.c>
SetEnvIfNoCase Request_URI \.gzip$ no-gzip
</IfModule>
<IfModule mod_headers.c>
Header set X-Pingback "http://www.domain.com/xmlrpc.php"
Header set X-Powered-By "W3 Total Cache/0.9.1.3"
Header set Vary "Accept-Encoding, Cookie"
</IfModule>
# END W3TC Page Cache
</Directory>
/var/www/domain.com/wp-content/w3tc/min/.htaccess:
<Directory /var/www/domain.com/wp-content/w3tc/min>
# BEGIN W3TC Minify
<IfModule mod_mime.c>
AddEncoding gzip .gzip
<Files *.css.gzip>
ForceType text/css
</Files>
<Files *.js.gzip>
ForceType application/x-javascript
</Files>
</IfModule>
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
SetEnvIfNoCase Request_URI \.gzip$ no-gzip
</IfModule>
</IfModule>
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.1.3"
Header set Vary "Accept-Encoding"
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp-content/w3tc/min/
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=APPEND_EXT:.gzip]
RewriteCond %{REQUEST_FILENAME}%{ENV:APPEND_EXT} -f
RewriteRule (.*) $1%{ENV:APPEND_EXT} [L]
RewriteRule ^([a-f0-9]+)\/(.+)\.(include(\-(footer|body))?(-nb)?)\.[0-9]+\.(css|js)$ index.php?tt=$1&gg=$2&g=$3&t=$7 [L]
</IfModule>
# END W3TC Minify
</Directory>
/var/www/domain.com/.htaccess
<Directory /var/www/domain.com>
AddHandler php5-script .php
ExpiresActive on
ExpiresDefault A0
php_flag display_errors on
php_value error_reporting 7
<FilesMatch "\.(inc|class)$">
SetHandler application/x-httpd-php
</FilesMatch>
Options +FollowSymLinks
php_value session.cache_expire 10800
php_value session.gc_maxlifetime 10800
php_value session.gc_probability 1000
php_value session.gc_divisor 100
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !(www.domain.com)$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC,L]
RewriteCond %{QUERY_STRING} ^sport=(.*)&conference=(.*)&school=(.*)&player=(.*)$
RewriteRule ^player-profile-new\.php$ /%1/%2/%3/%4? [R=301,NC,L]
RewriteRule ^([^-]*)-photos-([^/]*)-((foot|basket)(ball))-([^/]*)?-((p)[0-9]+)(/)?$ /playerimage.php?images=yes&sport=$3&conference=$6&school=$2&player=$7 [NC,L]
RewriteRule ^store/([^/]*)(/)?$ store-$1 [R=301,L]
RewriteRule ^store-([^/]*)(/)?$ /oneproduct.php?productid=$1&oneproduct=true [NC,L]
RewriteRule ^schedule-((foot|basket)(ball))-([^/]*)(/)?$ /schedule.php?sport=$1&school=$4&schedule=true [NC,L]
RewriteRule ^search(/(.*))?$ /search-results?q=$2 [NC,L]
RewriteRule ^((foot|basket)(ball))-([^/]*)-([^/]*)-([^/]*)?-((p)[0-9]+)/edit/deleteimage/([0-9]+)(/)?$ /$6-$5-$1-$4-$7/edit/deleteimage/$9 [R=301,L]
RewriteRule ^((foot|basket)(ball))-([^/]*)-([^/]*)-([^/]*)?-((p)[0-9]+)/(edit)(/)?$ /$6-$5-$1-$4-$7/edit [R=301,L]
RewriteRule ^((foot|basket)(ball))-([^/]*)-([^/]*)-([^/]*)?-((p)[0-9]+)(/)?$ /$6-$5-$1-$4-$7 [R=301,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*)/?((p)[0-9]+)/edit/deleteimage/([0-9]+)(/)?$ /$6-$5-$1-$4-$7/edit/deleteimage/$9 [R=301,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*)/?((p)[0-9]+)/(edit)(/)?$ /$6-$5-$1-$4-$7/edit [R=301,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*)/?((p)[0-9]+)(/)?$ /$6-$5-$1-$4-$7 [R=301,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*/)?((p)[0-9]+)/edit/deleteimage/([0-9]+)(/)?$ /player-profile?formmode=edit&sport=$1&conference=$4&school=$5&player=$7&deleteimage=1&imageid=$9 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*/)?((p)[0-9]+)/(edit)(/)?$ /player-profile?formmode=edit&sport=$1&conference=$4&school=$5&player=$7 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/([^/]*/)?((p)[0-9]+)(/)?$ /player-profile?formmode=view&sport=$1&conference=$4&school=$5&player=$7 [R=301,NC,L]
RewriteRule ^([^/]*)-([^/]*)-((foot|basket)(ball))-([^/]*)?-((p)[0-9]+)/edit/deleteimage/([0-9]+)(/)?$ /player-profile?formmode=edit&sport=$3&conference=$6&school=$2&player=$7&deleteimage=1&imageid=$9 [NC,L]
RewriteRule ^([^/]*)-([^/]*)-((foot|basket)(ball))-([^/]*)?-((p)[0-9]+)/(edit)(/)?$ /player-profile?formmode=edit&sport=$3&conference=$6&school=$2&player=$7 [NC,L]
RewriteRule ^([^/]*)-([^/]*)-((foot|basket)(ball))-([^/]*)?-((p)[0-9]+)(/)?$ /player-profile?formmode=view&sport=$3&conference=$6&school=$2&player=$7&name=$1 [NC,L]
RewriteRule ^([^-]*)-([^-]*)-((foot|basket)(ball))-schedule(/)?$ /yearschedule.php?sport=$3&school=$1&year=$2&schedule=true [NC,L]
RewriteRule ^directory/((foot|basket)(ball))/([^/]*)/([^/]*)(/([^/]*)(/)?)?$ /$5-$1-$4-directory/$7 [R=301,NC,L]
RewriteRule ^([^/]*)-((foot|basket)(ball))-([^/]*)-directory(/)?$ /seoteam?sport=$2&conference=$5&school=$1&sort=$7&seo=yes [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)/$ /$5-$1-$4/ [R=301,NC,L]
RewriteRule ^([^/]*)-((foot|basket)(ball))-([^/]*)/$ /team?sport=$2&conference=$5&school=$1 [NC,L]
# --
# where the error is occurring - this rewrites happens before the wordpress rewrites and we want the wordpress rewrites to happen first.
# --
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)(/([^/]*)(/)?)?$ /$5-$1-$4/$7/ [R=301,NC,L]
RewriteRule ^([^/]*)-((foot|basket)(ball))-([^/]*)/([^/]*)/$ /team?sport=$2&conference=$5&school=$1&sort=$6 [NC,L]
RewriteRule ^((foot|basket)(ball))/([^/]*)/([^/]*)$ /team?sport=$1&conference=$4&school=$5 [NC,L]
RewriteRule ^((foot|basket)(ball))(/)?$ /directory?sport=$1 [NC,L]
RewriteRule ^directory/((foot|basket)(ball))(/)?$ /directory-$1 [R=301,NC,L]
RewriteRule ^directory-((foot|basket)(ball))(/)?$ /fulldirectory.php?sport=$1&seo=yes [NC,L]
# Add Derick Schaefer 5/4/11
RewriteRule ^([^-]*)-([^-]*)-((foot|(?:[^-]*-)?basket)(ball))-schedule/?$ /yearschedule.php?sport=$3&school=$1&year=$2&schedule=true [NC,L]
RewriteRule ^([^-]*)-([^-]*)-([^-]*)-((foot|(?:[^-]*-)?basket)(ball))-schedule/?$ /yearschedule.php?sport=$4&school=$1&year=$3&schedule=true [NC,L]
# end Derick Schaefer
RewriteRule ^players/([^/]*)$ /player-profile.php?player=$1 [NC,L]
RewriteRule ^images/playerphotos/([^/]*)/([^/]*).jpg$ /playerphoto.php?player=$2&size=$1 [NC,L]
RewriteRule ^images/interviewphotos/([^/]*)/([^/]*).jpg$ /interviewphoto.php?interview=$2&size=$1 [NC,L]
RewriteRule ^images/captcha(.)(.)([0-9]{3}).jpg /validate.php?char=$1&type=$2&cachebuster=$3 [NC,L]
RewriteRule ^featured-interview/((p)[0-9]*)$ /featured-interview.php?playerid=$1 [NC,L]
RewriteRule ^playerpictures/(.*)/(.*)/(.*)/$ /playerpictures.php?playername=$1&id=$2&playerid=$3&ajaxgallery=true&isimage=true [NC,L]
RewriteRule ^links-(.*)/$ /links.php?linkcategoryname=$1 [NC,L]
RewriteRule ^teamstore/(.*)/?$ teamstore-$1 [R=301,L]
RewriteRule ^teamstore-([^/]*)-([^/]*)/$ /teamproduct.php?teamproduct=$1&products=true&teammascot=$2 [NC,L]
RewriteRule ^teamstore-([^/]*)/$ /teamproduct.php?teamproduct=$1&products=true [NC,L]
RewriteRule ^([^/]*)-([^/]*)-store/?$ /teamproductcategory?teamproduct=$1&category=$2 [NC,L]
RewriteRule ^schedules(/)?$ /scheduledirectory.php?scheduledirectory=1 [NC,L]
RewriteRule ^college-merchandise/?$ /merchandisedirectory.php?collegemerchandise=true [NC,L]
</IfModule>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/x-js
AddOutputFilterByType DEFLATE text/ecmascript
AddOutputFilterByType DEFLATE application/ecmascript
AddOutputFilterByType DEFLATE text/vbscript
AddOutputFilterByType DEFLATE text/fluffscript
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/vnd.oasis.opendocument.formula-template
</IfModule>
# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
<FilesMatch "\.(css|js)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.1.3"
</IfModule>
</FilesMatch>
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.1.3"
</IfModule>
</FilesMatch>
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.1.3"
</IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} (2\.0\ mmp|240x320|alcatel|amoi|asus|au\-mic|audiovox|avantgo|benq|bird|blackberry|blazer|cdm|cellphone|danger|ddipocket|docomo|dopod|elaine/3\.0|ericsson|eudoraweb|fly|haier|hiptop|hp\.ipaq|htc|huawei|i\-mobile|iemobile|j\-phone|kddi|konka|kwc|kyocera/wx310k|lenovo|lg|lg/u990|lge\ vx|midp|midp\-2\.0|mmef20|mmp|mobilephone|mot\-v|motorola|netfront|newgen|newt|nintendo\ ds|nintendo\ wii|nitro|nokia|novarra|o2|openweb|opera\ mobi|opera\.mobi|palm|panasonic|pantech|pdxgw|pg|philips|phone|playstation\ portable|portalmmm|ppc|proxinet|psp|pt|qtek|sagem|samsung|sanyo|sch|sec|sendo|sgh|sharp|sharp\-tq\-gx10|small|smartphone|softbank|sonyericsson|sph|symbian|symbian\ os|symbianos|toshiba|treo|ts21i\-10|up\.browser|up\.link|uts|vertu|vodafone|wap|willcome|windows\ ce|windows\.ce|winwap|xda|zte) [NC]
RewriteRule .* - [E=W3TC_UA:_low]
RewriteCond %{HTTP_USER_AGENT} (acer\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|cupcake|docomo\ ht\-03a|dream|htc\ hero|htc\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|lg\-gw620|liquid\ build|maemo|mot\-mb200|mot\-mb300|nexus\ one|opera\ mini|samsung\-s8000|series60.*webkit|series60/5\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\-mobile\ mytouch\ 3g|t\-mobile\ opal|tattoo|webmate|webos) [NC]
RewriteRule .* - [E=W3TC_UA:_high]
RewriteCond %{HTTPS} =on
RewriteRule .* - [E=W3TC_SSL:_ssl]
RewriteCond %{SERVER_PORT} =443
RewriteRule .* - [E=W3TC_SSL:_ssl]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:.gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (wp\-comments\-popup\.php|wp\-links\-opml\.php|wp\-locations\.php) [NC]
RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|wordpress_\[a\-f0\-9\]\+|wordpress_logged_in) [NC]
RewriteCond "/var/www/domain.com/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f
RewriteRule (.*) "/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</Directory>
答案1
如果您使用 nginx 作为 Web 服务器,则它不使用 .htaccess 文件。.htaccess (或多或少) 是 Apache 特有的。来自 nginx 文档:http://wiki.nginx.org/LikeApache-htaccess
也可以看看:nginx 支持 .htaccess / rewrite 规则吗?与 Apache 有何不同?
如果您确实在使用 Apache,则需要确保任何 RewriteCond/RewriteRule 语句之前都有“RewriteEngine On”。您列出的第一个文件 (/var/www/domain.com/ajax/.htaccess) 中的 RewriteEngine On 似乎太低了。