это недочёт самого скрипта, на php решается вот так (вставить в начало кода)
if($_SERVER['HTTP_HOST']!='host.com'){ header($_SERVER['SERVER_PROTOCOL'].' 301'); header('Location: http://host.com'.$_SERVER['REQUEST_URI']); exit(); }
предположу, что на Python-е можно подобное соорудить тоже.
работает и хорошо, :) то я не досмотрел в первом варианте куда + воткнул, а проверял с одной цифрой, и правило для одной срабатывало ок.
mod_rewrite включён? весь код .htaccess можно увидеть? сюда или в личку.
а предложенный код рабочий – проверено.
MBo добавил 16.02.2011 в 21:20
если цифр больше чем одна, вот ещё вариант
RewriteRule ^content/view/([0-9]+)/$ /content/view/$1/2 [R=301,L]
внутри одного домена
RewriteRule ^content/view/([0-9+])/$ /content/view/$1/2 [R=301,L]
на другой домен
RewriteRule ^content/view/([0-9+])/$ http://host.com/content/view/$1/2 [R=301,L]
почему так не сделать?
if(isset($_POST['var']){$var=$_POST['var'];} else {$var=1;}
MBo добавил 13.02.2011 в 15:59
и если дальше где-то идёт if($var){ }
тогда, если не isset($_POST['var']), то надо $var присваивать 0, т.е.
if(isset($_POST['var']){$var=$_POST['var'];} else {$var=0;}
защита от флуда, авторский вариант и инструкция
http://php.spb.ru/other/_dima_noflood.php
и немного запиленный вариант (удаляет все файлы в директории лога скрипта, в хедер выдаёт 503 и Retry-After)
[ATTACH]83002[/ATTACH]
подключать в самом начале кода, напр., в index.php
было
<?php
error_reporting(E_ALL);
стало
include('admin/_noflood_mod.php');
для "сдруживания" скрипта с нужными ботами, типа Гугла, Яндекса, лучше в robots.txt внести Crawl-delay, напр.,
User-agent: *
Disallow:
Crawl-delay: 3
если правило выше не поможет, то так должно работать
RewriteEngine on
RewriteRule ^forum/index\.php$ /forum/ [R=301,L]
это правило для корня, но siv1987 верно подметил и дал рабочий вариант
тогда вот так про запас :) в htaccess папки forum
RewriteRule ^index\.php$ /forum/ [R=301,L]
скрипт на сайте - это движок интернет-магазина Simpla (PHP, MySQL) и .htaccess там есть однозначно :)
MBo добавил 06.01.2011 в 20:25
возможное решение, в корне сайта в index.php после
if($site->fetch() !== false)
{
вставить
header('Content-Type: text/html');
а вообще, исходный скрипт без правок должен работать корректно.
<?if (!isset($engine)) {?><? exit;}
заменить на
<?if (!isset($_POST['engine'])) {?><? exit;}$engine=$_POST['engine'];
если заработает, то причина в register_globals = Off (php.ini),
и тогда, возможно, где-то ещё скрипт может криво сработать.
RewriteRule ^.htaccess$ - [F]
RewriteCond %{HTTP_HOST} ^(www.my.com|(www.)*not-my.com|127.0.0.1)$
RewriteRule ^(.*)$ http://my.com/$1 [R=301,L]