regex


htaccess similar cases like Facebook or Twitter issue


I have this piece of line in my htaccess that causes errors. I couldn't find a similar answer to my inadequate wording.
I am attempting to get "username/followers, username/following, etc" and also "settings/account, settings/password, etc". I stopped using sub folders for non-scripts and images, so everything is on the same level.
Now I know they have similar casing, but I am curious how Facebook, Twitter, etc manage to do this.
Do they condense to one large page to make it work? I know they prevent people from using settings and other root level names from being used, and I haven't quite gotten to that point myself.
RewriteRule ^([^/]+)$ profile_home.php?userdomain=$1 [L]
RewriteRule ^([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L]
RewriteRule ^settings/$ profile_settings.php [L]
RewriteRule ^settings/([^/]+)$ profile_settings.php?selection=$1 [L]
RewriteRule ^settings/([^/]+)/([^/]+)$ profile_settings.php?selection=$1&upload=$2 [L]
If I remove
RewriteRule ^([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L]
Then everything works fine. How do I make this work with two pages?
I could do
RewriteRule ^settings/([^/]+)/$ profile_settings.php?selection=$1 [L]
But it doesn't look as nice. If not right place to ask, please let me know.
Your second rule matches both directory structures. You can use a negative lookahead so requests starting with the setting are not matched by that rule.
^(?!settings)([^/]+)/([^/]+)$
You can read more about lookaheads here:
http://www.rexegg.com/regex-lookarounds.html
http://www.regular-expressions.info/lookaround.html
Here is my solution
RewriteEngine On
# make sure to add your document root dir
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([\w-.]+)/?$ index.php?id=$1 [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/htdocs/user/$2 -f
RewriteRule ^([\w-]+)/(.+)/?$ $2?id=$1&goto=$2 [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/htdocs/user/$2/index.php -f
RewriteRule ^([\w-.]+)/([a-z0-9]+)/?$ $2/index.php?id=$1&goto=$2 [NC,L,QSA]
RewriteRule ^([\w-.]+)/([a-z0-9]+)/?$ index.php?id=$1&goto=$2 [NC,L,QSA]
so inside your server root dir htdocs/user/ you must have a folder like /user/ and a file index.php this htacess will replace the file site/user/index.php to site/user/username in the same user dir you need to have the following.php file so site/user/username/following.php in the same folder, I think you understand my answer.

Related Links

Perl Extract Youtube ID from URL with Regex
Why is my regex not matching a C and the next letter?
Get a difference file by specific patterns in two text files
Regular expression for $ amount fields with or without bracket
when [:punct:] is too much [duplicate]
Regular expression to replace a part of a config file
Regular expression to move numbers from the start of a string to the end
Why does the word boundary not match?
regular expression dont allow partial matching
Regex to validate phone numbers, making sure there are no letters in them
EXtracting sub-string in Perl?
ANTLR4 Lexer Matching Start of Line End Of Line
Regular expression to extract a sentence that has the frequecny of word ony twice?
Efficient Replacement of Double-Byte Numerals to Single-Byte Numerals
Regex Match Ampersand but not escaped xml characters
Regular expression in java to extract URl from HTML

Categories

HOME
wix
azure-search
tags
watson
afp
twitter-digits
application-cache
jbpm
spacemacs
classloader
plotly
copy-paste
overloading
higher-order-functions
frequency
command-line-arguments
zend-expressive
nservicebus
google-cloud-sdk
partitioning
w2ui
lookup-tables
stackexchange-api
ssrs-2008
hp-alm
pydev
sfsafariviewcontroller
nested-set-model
semantics
aspdotnetstorefront
nice-language
burp
precision
apache-httpcomponents
regex-group
editorconfig
silverlight-5.0
scatter-plot
pvlib
rhel7
p4-lang
folly
ipod-touch
monogame
backwards-compatibility
xargs
pci
html-form
domdocument
jquery-ui-accordion
flying-saucer
jvm-arguments
angular-directive
mysql-error-1050
ifc
informatica-cloud
hard-drive-failure
amazon-dynamodb-streams
balsamiq
rsh
visual-build-professional
python-3.1
jca
hl7-v2
illegalstateexception
wgs84
genetic
cocoon-gem
equinox
iphone-5
bloodhound
android-print-framework
setattribute
laravel-validation
epoll
publish-actions
aps
email-spam
jqgrid-php
delphi-2009
ducttape
libtorrent-rasterbar
rte
chomsky-hierarchy
slimbox
mixing
51degrees
teamcity-7.0
cellid
self-organizing-maps
ms-access-97
expressionvisitor
stumbleupon
settings.bundle
mate
demoscene
jdic
servletunit
symstore
seam-conversation
anemic-domain-model
sqlitemanager
web-based
versant-vod
corporate-policy

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App