PDA

View Full Version : مشکل جالب در کار با htaccess



14morteza14
پنج شنبه 14 آذر 1392, 09:45 صبح
سلام خدمت دوستان
هر چی مطلب تو سایت برنامه نویس بود خوندم اما نتونستم لینکم رو با htaccess تغییر بدم. ممنون می شم اساتید کمک کنند.
من دارم تو لوکال کار می کنم و محتویات htaccessم به صورت زیر است:


RewriteEngine On
RewriteBase /site
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|pdf|gif|ico|jpg|js|png|swf|pdf|txt|php)$
RewriteRule ^(.+)$ test1.php?cat1=$1 [L,NC,QSA]
RewriteRule ^(.+?)/(.+)$ test2.php?cat1=$1&cat2=$2 [L,NC,QSA]

کد htaccess بالا درست عمل می کنه و لینک زیر رو:

http://localhost/site/test1.php?cat1=real
می تونه به این صورت اجرا کنه:

http://localhost/site/real

اما کد htaccess بالا نمی تونه لینک زیر رو:

http://localhost/site/test2.php?cat1=real&cat2=1
به این صورت اجرا کنه:

http://localhost/site/real/1

ببخشید طولانی شد. این هم test1.php :

<!DOCTYPE html>
<html>
<head>
</head>
<body style="background:#F00;">
</body>
</html>

و این هم test2.php :

<!DOCTYPE html>
<html>
<head>
</head>
<body style="background:#00F;">
</body>
</html>

رضا قربانی
پنج شنبه 14 آذر 1392, 10:42 صبح
داشی گلم به این صورت سئو شده عمل کن .


RewriteRule ^([^-]*)/([^-]*)/?\.html$ test2.php?cat1=$1&cat2=$2 [L]

خروجی میشه

http://localhost/site/real/1.html و یا برای بهتر شدن جای دو تا گت رو عوض کن که کلمه .html بگیره .
موفق باشید

14morteza14
پنج شنبه 14 آذر 1392, 16:57 عصر
ممنون آقای قربانی
اما واسه من عمل نکرد و not found می ده. ممنون می شم کمک کنید.
اگه می شه یه جوری بفرمائید که به html نیازی نباشه.
ممنون

14morteza14
پنج شنبه 14 آذر 1392, 19:13 عصر
ببینید دوستان من الان با کد زیر جواب گرفتم:


RewriteEngine On
RewriteBase /site
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|pdf|gif|ico|jpg|js|png|swf|pdf|txt|php)$
RewriteRule ^(cat)/(.+)$ clickcat.php?cat1=$2 [L,NC,QSA]
RewriteRule ^(subcat)/(.+?)/(.+)$ clickcat.php?cat1=$2&cat2=$3 [L,NC,QSA]
طبق کد بالا، اگه تو سایتم در اول لینک هام کلمه cat باشه کد htaccess اولی رو اجرا می کنه و اگه subcat اول لینک هام باشه کد htaccess دومی رو اجرا می کنه. اما من می خوام به جای cat و subcat بزارم category. نمی دونم چه جور باید کد های htaccess رو بدم.

MostafaEs3
پنج شنبه 14 آذر 1392, 19:19 عصر
//////////

14morteza14
پنج شنبه 14 آذر 1392, 19:30 عصر
ممنون مصطفی جان عمل نکرد !
اگه ممکنه دوستان ارسال 4 رو پیگیری کنند. الان فقط می خوام به جای cat و subcat یک کلمه category باشه همین. مثل سایت http://www.peiro.ir/
تو این سایت وقتی رو موضوعات و زیر موضوع می ری، کلمه category اول لینک ها وجود داره.
الان اگه به جای cat و subcat کلمه category قرار بدم فقط کد htaccess اولی عمل می کنه و دومی عمل نمی کنه و چیزی رو نمایش نمی ده.

14morteza14
پنج شنبه 14 آذر 1392, 21:40 عصر
دوستان...؟

14morteza14
پنج شنبه 14 آذر 1392, 23:42 عصر
ببینید دوستان من الان با کد زیر جواب گرفتم:


RewriteEngine On
RewriteBase /site
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|pdf|gif|ico|jpg|js|png|swf|pdf|txt|php)$
RewriteRule ^(cat)/(.+)$ clickcat.php?cat1=$2 [L,NC,QSA]
RewriteRule ^(subcat)/(.+?)/(.+)$ clickcat.php?cat1=$2&cat2=$3 [L,NC,QSA]
طبق کد بالا، اگه تو سایتم در اول لینک هام کلمه cat باشه کد htaccess اولی رو اجرا می کنه و اگه subcat اول لینک هام باشه کد htaccess دومی رو اجرا می کنه. اما من می خوام به جای cat و subcat بزارم category. نمی دونم چه جور باید کد های htaccess رو بدم.
کسی نمی تونه کمکی کنه؟!!!!

14morteza14
جمعه 15 آذر 1392, 19:21 عصر
از اساتید لطفا کمک کنید.:اشتباه:

ali2k5
جمعه 15 آذر 1392, 20:51 عصر
نحوه نوشتن شرط اشتباه هست ، شرط اولی شامل همه کاراکتر ها بعد از / میشه و اجازه رسیدن به شرط دو که ادرس با دوتا / هست رو نمیده ، شرط اول رو دقیقتر کنید مشکل حل میشه یا میتوانید جای دوتا خط رو عوض کنید تا اول شرط دوم با دوتا / درادرس بررسی بشه و اگر درست نبود بره به شرط بعدی